使用JSCH设置目录权限CHMOD

Gre*_*zer 5 java jsch

在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)


sam*_*hen 6

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代替.