![sftp 限制对目录的访问](https://linux22.com/image/108138/sftp%20%E9%99%90%E5%88%B6%E5%AF%B9%E7%9B%AE%E5%BD%95%E7%9A%84%E8%AE%BF%E9%97%AE.png)
我需要通过 SFTP 授予对该文件夹根目录的完全写入权限的访问权限。我成功了,但无法找到一种方法来提供对根目录 / 的写权限。
我读到解决此问题的常见方法是为每个用户创建一个子文件夹,但该子文件夹包含在网站各处使用的现有文件。
简而言之 :
/ should not be readable (this is correct)
/uploads/ is not writable (**but should** by any means)
/uploads/* is writable (and should)
这就是我到目前为止所做的:
/var/www/uploads is owned by root:root with 755 permissions. (775 prevents user to even log in)
/var/www/uploads/* is owned by newuser:sftp 775 permissions.
相关/etc/ssh/sshd_config
Match group sftp
ChrootDirectory %h
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
AllowGroups ssh-users sftp
用户是这样创建的:
useradd -d /var/www/uploads -m newuser -g sftp -s /bin/false
多谢!
答案1
我成功了,但无法找到一种方法来提供对根目录 / 的写权限。
这不可能。chroot
您正在 chroot 的用户无法写入该目录。这是手册页中必须定义的sshd_config
:
在会话启动时
sshd(8)
检查路径名的所有组成部分是否为 root 拥有的目录不是可由任何其他用户或组写入。
答案2
系统上用户之间共享的目录应具有涵盖所有用户访问权限的权限。
我倾向于在共享目录和内容上使用 1777。它为所有用户提供完全访问权限,同时防止文件所有者以外的人删除。
权限八进制中前面的 1 是粘性位,它将删除和权限更改权限缩小到所有者。