使用ChannelSftp.chmod方法进行赋权

使用ChannelSftp.chmod方法进行赋权的时候遇到的问题及解决.
第一次这样写的。
chmod(755,path);发现生成的文件权限为:363
第二次
chmod(775,path);发现生成的文件权限为:407
第三次
chmod(777,path);发现生成的文件权限为:411
天啊,这么会这样。无意间在项目中搜索chmod关键字,发现他们写的是
chmod(33277,path),生成的文件是:755
开始怀疑是进制问题........
最后发现
755(10进制)转成8进制是1363
775(10进制)转成8进制是1407
777(10进制)转成8进制是1411
难道我们传入的int会被转成8进制?
那好,我们这样做
755(8进制)转成10进制是493
775(8进制)转成10进制是509
777(8进制)转成10进制是511
第四次
chmod(493,path);发现生成的文件权限为:755
chmod(509,path);发现生成的文件权限为:775
chmod(511,path);发现生成的文件权限为:777


最后代码为:chmod(Integer.parseInt("775",8),path);生成的就是755权限
结果:传入的int会被转成8进制,我们需提前转成8进制
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`CHANNELSsFTP.mkdir` 这段表述似乎包含了一些拼写错误或缩写的混淆,正确的命令应涉及到在 sFTP(安全文件传送协议)环境中创建目录的功能。在 Linux 系统和其他 Unix 类系统中,用于创建目录的标准命令是 `mkdir`(make directory 的缩写),而 `sftp` 则是一个远程文件管理系统,它允许用户通过 SSH 协议连接到另一个主机进行文件操作。 在使用 `sftp` 工具时,并没有直接对应的 `mkdir` 命令形式。然而,在完成 `sftp` 登录之后,可以使用 `mkdir` 命令在目标主机上创建目录。例如,登录到远程主机后,你可以使用以下命令来创建名为 `new_directory` 的新目录: ```bash sftp user@host.example.com -p port_number ``` 接着输入密码,如果需要的话。然后执行: ```bash mkdir new_directory ``` 如果你的目标是在 `sftp` 中而不是通过终端命令行直接运行此类操作,那么你可能正在使用脚本或其他自动化工具来执行 `sftp` 操作,其中可能会包含一系列步骤来登录执行命令和退出会话。在这种情况下,创建目录的动作会被封装在一个函数或脚本中,可能类似于: ```bash function create_remote_directory() { mkdir "new_directory" } # 调用这个函数来进行操作 create_remote_directory ``` 但是请注意,上面的示例假设是在本地执行了一个假想的 `sftp` 模拟,真正的 `sftp` 或其他远程文件管理工具交互不会以这种方式执行。在实际操作中,目录的创建通常发生在登录到远程服务器并在该服务器上执行 `mkdir` 命令。 --- 相关问题--- 1. `sftp` 工具是如何与远程服务器建立连接的? 2. `sftp` 和 `scp` (secure copy)的区别是什么? 3. 创建远程目录时应该注意哪些潜在的安全风险?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值