引用How to determine if you can write to a file with SFTP because of your group?
您可以执行
mode & 00002
来查看[目录]是否可被公众写入 您可以获取目录列表,并查看.
的所有者 与您登录的用户匹配(尽管stat
与 通常会为SFTPv3服务器返回longname
,这是您要执行的操作 需要从中获取用户名),但是组权限又如何呢?
在该帖子的答案中,建议使用SFTP测试文件可写性的更好方法是实际打开该文件以进行写入。例如。与fopen('filename.ext', 'w');
类似。
我的问题是...用SFTP确定目录的可写性的最佳方法是什么?您无法像文件一样打开用于写入的目录。我的最佳猜测:只是尝试在相关目录中上传临时文件?
例如可能使用SSH_FXF_CREAT和SSH_FXF_EXCL?文件可能已经存在的可能性使事情变得复杂。我猜可以获取目录列表,然后尝试上载不存在的文件名,但是事实是,如果这需要读取权限,那么如果目录很大。
有什么想法吗?
答案 0 :(得分:1)
与该用户一起在该目录上执行touch
的登录脚本怎么样?
如果要使用sshd
,则只需简单地在目录中执行touch testing_file_creation
,就可以使用pam_script
(pam auth模块来执行脚本)。您需要将其添加到pam sshd配置中。
如果该目录不可是可写的,则在登录期间会收到一条消息
touch: testing_file_creation: Permission denied
。当然,您可以为此做更多花哨的事情,但这是最基本的。