在Unix中,如何使用JSCH设置目录权限?我期待做drwxrwxrwx。 Filezilla说整数是775,但JSCH没有正确设置权限。 JSCH设置权限后Filezilla说它是407.使用JSCH设置目录权限CHMOD
4
A
回答
5
Unix中的文件权限码(例如777
)是八进制的,而不是十进制。例如:当您执行诸如chmod -R 777
之类的操作时,数字将被解释为八进制输入而不是十进制输入。
该系统源于一个事实,即有3个权限组:
- 所有者
- 组
- 世界
,每个组有一个 “开/关位” :
- 阅读
- 写
- 执行
所以八进制基是足以表示为一组所有可能的许可配置。这三个八进制数字分别对应一个许可组。
(有关此进一步阅读:http://www.december.com/unix/ref/chmod.html)
回到你的问题JSCH:十进制整数775
的八进制表示是0o1407
,我怀疑是十进制775实际发送八进制775,而不是和FileZilla中很可能被截断东西的0o1407
第三至少显著位的左边(因为它不是不合理它假定没有什么过去的3最显著位)现在
,509
是十进制表示八进制775
,尝试使用tha用JSCH代替。
-2
这里是一个短,如何能easyly使用Jsch使用通常的方式通过 改变chmod来decrib在chmod权限
一个完整的示例============ ============================================= 简短回答: int chmodInt = Integer.parseInt(chmod,8); channel.chmod(chmodInt,fileLinux);
============================================== =========== 完整的例子:
package example;
import java.io.IOException;
import java.util.Date;
import main.services.ServiceSSH;
import org.junit.Test;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
public class ExampleChmod {
@Test
public void testchmod() throws JSchException, SftpException, IOException {
Session session = ServiceSSH.getSession(); // Use your own session Factory
Date dateStart = new Date();
chmod("/home/user/launcher.sh", "777", session);
Date dateEnd = new Date();
session.disconnect();
System.out.println(dateEnd.getTime() - dateStart.getTime() + "ms");
}
public static void chmod(String fileLinux, String chmod, Session session) throws JSchException, SftpException {
ChannelSftp channel = (ChannelSftp) session.openChannel("sftp");
channel.connect();
chmod(fileLinux, chmod, channel);
channel.disconnect();
}
private static void chmod(String fileLinux, String chmod, ChannelSftp channel) throws SftpException {
int chmodInt = Integer.parseInt(chmod, 8);
channel.chmod(chmodInt, fileLinux);
}
}
6
相关问题
- 1. Codeigniter - 设置目录和文件权限(chmod设置)
- 2. 在php中改变目录权限(chmod)
- 3. chmod动态设置权限值
- 4. 在Android中设置chmod权限
- 5. chmod用户权限
- 6. 如何在java jsch channelsftp中设置chmod权限setPermission(int权限,字符串路径)
- 7. 使目录权限被拒绝,但权限设置正确
- 8. 使用chmod设置Raspbian(debian)文件权限不会持久
- 9. 使用“sudo chmod 444 etc”更改目录后无法编辑目录的权限
- 10. 需要帮助通过PHP在新目录上设置Chmod权限
- 11. 如何为vagrant共享文件夹的子目录设置chmod文件权限?
- 12. 设置不同的apache目录权限
- 13. 设置安装目录的权限
- 14. 设置MongoDB数据/ db目录权限
- 15. 在Windows XP中设置目录权限
- 16. 为JSP/Tomcat/Windows设置目录权限
- 17. Powershell在主目录中设置权限
- 18. CHMOD设置为隐藏目录
- 19. WiX权限 - 在预先存在的目录上设置权限
- 20. IIS 7权限:如何为目录设置正确的权限?
- 21. git部署项目 - 文件权限 - (chmod)
- 22. 权限被拒绝使用JSch
- 23. 使用Jsch检查SFTP权限
- 24. 如何使用chmod更改权限?
- 25. 如何使用PHP创建目录后设置权限?
- 26. 如何使用Perl chmod在目录上添加设置组ID?
- 27. 如何更改所有子目录的文件权限(CHMOD)
- 28. chmod:无法读取目录`。':权限被拒绝
- 29. 使用vbscript设置权限
- 30. 如何使用FtpWebRequest/WebRequest(C#)在FTP服务器上更改目录权限/ chmod?
使用509拿到八进制775的工作完美 – dumazy