如何确定是否由于您的组而可以使用SFTP写入目录?

时间:2019-03-04 14:48:40

标签: ssh permissions sftp

引用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?文件可能已经存在的可能性使事情变得复杂。我猜可以获取目录列表,然后尝试上载不存在的文件名,但是事实是,如果这需要读取权限,那么如果目录很大。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

与该用户一起在该目录上执行touch的登录脚本怎么样?

如果要使用sshd,则只需简单地在目录中执行touch testing_file_creation,就可以使用pam_script(pam auth模块来执行脚本)。您需要将其添加到pam sshd配置中。

如果该目录不可是可写的,则在登录期间会收到一条消息 touch: testing_file_creation: Permission denied。当然,您可以为此做更多花哨的事情,但这是最基本的。