自从Android N开发人员预览版首次发布以来,在尝试列出根目录或其他系统目录时,我收到"权限被拒绝"错误.这些目录的权限似乎没有改变(据我所知).
Android N中的哪些更改导致这些权限被拒绝错误?
如何复制:
在ADB shell中,运行以下命令:
run-as com.debuggable.packagename
ls /
Run Code Online (Sandbox Code Playgroud)
这会在Android N上提供权限被拒绝的错误.
为什么列出系统目录:
我注意到Android N上有几个文件管理器的这种行为.他们无法再列出根目录或其他系统文件.这也限制ps了shell 中运行的输出.这些更改也导致此库停止在Android N上运行.
filesystems android file-permissions permission-denied android-7.0-nougat
我正在尝试自动将文件推送到我的用户的主目录中,但是我被困在"权限被拒绝"错误上 - 在这里使用CopyFile调用抛出第6行.
脚本的其他部分(未显示)使用相同的源和目标目录创建和复制文件夹内容,并且它们完美地工作.只有当我使用CopyFile失败时才会这样.
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists("H:\Minecraft\.minecraft\options.txt") Then
fso.CopyFile "C:\Minecraft\options.txt", "H:\Minecraft\.minecraft\"
End If
Set fso = Nothing
Run Code Online (Sandbox Code Playgroud)
H: 是一个网络主目录,当前用户具有完全读/写权限.
我尝试添加/删除路径中的尾部斜杠,添加"options.txt"到目标路径,删除false参数...不确定还有什么要尝试.有什么想法吗?
谢谢!
仅供参考,在上面容易出错的位之前,这段代码每次都会完美地执行:
If Not fso.FolderExists("H:\Minecraft\.minecraft\bin\") Then
If Not fso.FolderExists("H:\Minecraft\.minecraft\") Then
fso.CreateFolder("H:\Minecraft\.minecraft\")
End If
fso.GetFolder("C:\Minecraft\bin\").Copy "H:\Minecraft\.minecraft\"
End If
Run Code Online (Sandbox Code Playgroud) 在我的项目的"运行脚本"构建阶段,如果我在构建阶段的"运行脚本"的文本框中输入脚本,一切都有效.
但是为了使编辑/差异等更容易,我想我会将脚本保存为文件作为项目的一部分,只需填写文本框中的路径:
例如:我在文本框中粘贴以下路径.
/Users/superman/Documents/Projects/SomeProject/scriptname.sh
Run Code Online (Sandbox Code Playgroud)
但是当我尝试构建它时,我得到一个"Permission Denied"消息.
我该怎么做才能解决这个问题?如果我剪切/粘贴实际代码,那么它只是"工作".我的用户帐户是管理员帐户.没有人使用我的机器.
我正在尝试将文件传输到ec2实例.我按照亚马逊的文档,这是我的命令:
scp -i [the key's location] Documents/[the file's location] ec2-user@[public dns]:[home/[destination]]
Run Code Online (Sandbox Code Playgroud)
我用适当的东西替换了所有变量,我确定它是正确的密钥并且它有权限400.当我调用命令时,它告诉我RSA密钥指纹,询问我是否要继续连接.我键入是,它回复
Permission denied (publickey,gssapi-with-mic)
lost connection
Run Code Online (Sandbox Code Playgroud)
我已经查看了许多关于堆栈溢出的其他类似问题,但找不到正确的方法.
此外,端口22上启用了ssh流量.
我想从PHP脚本执行系统中存在的Bash脚本.我在系统上有两个脚本.其中一个是名为client.phppresent at 的PHP脚本/var/www/html,另一个是名为testscriptpresent at 的Bash脚本/home/testuser.
我的client.php脚本看起来像
<?php
$message=shell_exec("/home/testuser/testscript 2>&1");
print_r($message);
?>
Run Code Online (Sandbox Code Playgroud)
我的测试文件看起来像
#!/bin/bash
echo "Testscript run succesful"
Run Code Online (Sandbox Code Playgroud)
当我在终端上执行以下操作时
php client.php
Run Code Online (Sandbox Code Playgroud)
我在终端上得到以下输出
Testscript run successful
Run Code Online (Sandbox Code Playgroud)
但是当我打开页面时
http://serverdomain/client.php
Run Code Online (Sandbox Code Playgroud)
我得到以下输出
sh: /home/testuser/testscript: Permission denied
Run Code Online (Sandbox Code Playgroud)
即使我做了chmod + x testscript后,我也收到了这个错误.
如何从浏览器中使用它?请帮忙.
我正在使用WinSCP并在每次尝试替换/覆盖文件时继续遇到此错误.我已经能够在没有任何问题之前传输/覆盖文件,但现在不能了.
确切的错误消息:
无法创建远程文件'var/lib/tomcat6/webapps /..../ myfilename.filepart'.
没有权限.
错误代码:3
来自服务器的错误消息:权限被拒绝
我已经尝试更改我成功的所有权,因为当我刷新时,从tomcat6,它现在在我的登录名下.但我仍被否认.这让我很难测试我们的报告,因为我只需要查看它是否已经在部署的应用程序中运行.
我也试过调整WinSCP偏好中的一些选项,例如Drag&Drop和Endurance,但没有任何区别.
我重新安装了PuTTY和WinSCP,但没有任何改变.
更新:
我可以通过文件路径中的1个等级替换我的文件(例如var/lib/myfolder/myproject/web-inf/report,返回1个档位到var/lib/myfolder/myproject/web-inf /)然后键入
sudo chown myuser:myuser report -R
Run Code Online (Sandbox Code Playgroud)
但我的报告会有错误,所以我必须输入
sudo chown tomca6:tomcat6 report -R然后错误将被清除,我现在可以查看我的替换文件.
这非常不方便,因为我每次都必须这样做.有什么办法可以解决这个问题吗?谢谢
我正在尝试使用SF.NET协议使用C#使用SSH.NET库上传文件.以下是我正在使用的代码
FileInfo f=new FileInfo("C:\\mdu\\abcd.xml");
string uploadfile=f.FullName;
Console.WriteLine(f.Name);
Console.WriteLine("uploadfile"+uploadfile);
var client = new SftpClient(host, port, username, password);
client.Connect();
if(client.IsConnected){
Console.WriteLine("I AM CONNECTED");
}
var fileStream = new FileStream(uploadfile, FileMode.Open);
if(fileStream!=null){
Console.WriteLine("YOU ARE NOT NULL");
}
client.BufferSize = 4 * 1024;
client.UploadFile(fileStream, f.Name,null);
client.Disconnect();
client.Dispose();
Run Code Online (Sandbox Code Playgroud)
我能够连接,filestream也不是NULL.但我PermissionDeniedException在尝试上传文件时得到了.
Unhandled Exception: Renci.SshNet.Common.SftpPermissionDeniedException: Permission denied
at Renci.SshNet.Sftp.SftpSession.RequestOpen(String path, Flags flags, Boolean nullOnError)
at Renci.SshNet.SftpClient.InternalUploadFile(Stream input, String path, Flags flags, SftpUploadAsyncResult asyncResult, Action`1 uploadCallback)
at Renci.SshNet.SftpClient.UploadFile(Stream input, String path, Boolean canOverride, Action`1 uploadCallback) …Run Code Online (Sandbox Code Playgroud) 在Chrome版本47中,它们强制您使用https来允许使用getUserMedia().不幸的是,我无法在我的整个网络中使用https,我只在登录休息时使用它(它是SPA - 单页应用程序).因此,Web的地址没有https,只有登录休息使用ssl.我使用这个repo只有很少的变化:https: //github.com/Jmlevick/html-recorder
我的问题是,有没有办法在我的网络应用程序中使用录音机,并保持我的网址与http而不是https?你有什么想法来克服这个问题?
我无法让应用程序使用JavaMail API以比以前更自动化的方式发送一些文件.我是Java和NetBeans的新手,但是已经用其他语言编程了,所以如果我对Java和NetBeans有点遗失,请原谅我.
我一直收到这个错误
java.net.SocketException:权限被拒绝:连接
尝试连接到本地邮件服务器时.我已经通过gmail的SMTP服务器使用相同的代码成功连接和发送邮件,只需更改用户名,密码和端口.我也能成功telnet到我们的服务器并从端口25获得220响应.我还有一个运行的批处理文件,它通过我们的本地服务器成功发送电子邮件.关于为什么我无法连接的任何想法或想法JavaMail?
这是发送电子邮件的代码.
源代码:
public void sendEmail(String customerNumber, ArrayList fileList){
String from = "xxxx";
String username = "xxxx";
String to = "xxxx";
String host = "10.1.1.6";
String pwd = "xxxx";
String port = "25";
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", port);
props.put("mail.smtp.user", username);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.debug", "true");
props.put("mail.smtp.socketFactory.port", port);
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
Session session = Session.getInstance(props, null);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
try{
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO, to);
message.setSubject("Electronic Invoices");
BodyPart …Run Code Online (Sandbox Code Playgroud) 在http端口80(默认端口)上运行时,Node.js抛出以下错误: -
Error: EACCES, Permission denied
at Server._doListen (net.js:1062:5)
at net.js:1033:14
at Object.lookup (dns.js:132:45)
at Server.listen (net.js:1027:20)
at [object Context]:1:3
at Interface.<anonymous> (repl.js:150:22)
at Interface.emit (events.js:42:17)
at Interface._onLine (readline.js:132:10)
at Interface._line (readline.js:387:8)
at Interface._ttyWrite (readline.js:564:14)
Run Code Online (Sandbox Code Playgroud)
我发现该节点需要具有root访问权限.
通常,我们避免在正常情况下提供root访问权限.在端口80(或端口<1024)上使用它的最佳做法是什么.
这个链接有同样的问题,但它只有一个答案,即PREROUTING.虽然我的解决方案也提供其他方法.
我写这篇文章是为了在一个地方得到所有答案,因为我必须通过其他资源而不是PREROUTING.为什么不在一个地方为所有答案分享知识
javascript ×2
amazon-ec2 ×1
android ×1
apache ×1
bash ×1
build ×1
c# ×1
express ×1
file-copying ×1
filesystems ×1
getusermedia ×1
http ×1
jakarta-mail ×1
java ×1
node.js ×1
php ×1
private-key ×1
run-script ×1
scp ×1
sftp ×1
shell ×1
ssh.net ×1
upload ×1
vbscript ×1
winscp ×1
xcode ×1