在Unix中,如何使用JSCH设置目录权限?我想做drwxrwxrwx.Filezilla说这个整数是775但是JSCH没有正确设置权限.在JSCH设置权限之后,Filezilla说它是407.
小智 7
这对我有用:
sftp.chmod(Integer.parseInt(permissionStringInDecimal,8), str_Directory+fileName);
Run Code Online (Sandbox Code Playgroud)
Unix中的文件权限代码(777例如)是八进制,而不是十进制.如:在执行类似操作时chmod -R 777,数字被解释为八进制输入而不是十进制输入.
该系统来自于有3个权限组:
每个组都有一个"开/关位":
因此,八进制基数足以表示组的所有可能的权限配置.3个八进制数字分别对应一个权限组.
(有关此内容的进一步阅读:http://www.december.com/unix/ref/chmod.html)
回到你的JSCH问题:十进制整数775的八进制表示0o1407,我怀疑是十进制775实际上是发送而不是八进制775,FileZilla可能很好地截断第三个最低有效数字左边的东西的0o1407(因为它不是不合理它假定没有什么过去的3最显著位)
现在,509是八进制的十进制表示775,尝试使用JSCH代替.