![仅授予用户对 1 个目录的权限](https://linux22.com/image/1391926/%E4%BB%85%E6%8E%88%E4%BA%88%E7%94%A8%E6%88%B7%E5%AF%B9%201%20%E4%B8%AA%E7%9B%AE%E5%BD%95%E7%9A%84%E6%9D%83%E9%99%90.png)
我的家庭服务器上使用的是 Debian。我的目标是创建一个只允许在其目录中上传文件的用户(/var/www/user)
。该用户应该能够使用 SSH 访问其目录,但不能查看父目录。/var/www/user 应该是其根目录,而他不能查看 /var/www。我该如何限制用户权限?
答案1
您可以将以下指令放入 /etc/ssh/sshd_config:
ChrootDirectory /var/www/%u
看man sshd_config
。
请注意,使用此设置,除非 /var/www/user 包含完整的 shell 环境(/bin/sh 等),否则用户将无法登录交互式会话。但他们将能够使用 ssh/scp/sftp 将文件传输到该目录或从该目录传输出文件。
以上内容将适用于所有用户。若要将其限制为仅限一个用户,请Match User user
在 sshd_config 之前添加ChrootDirectory
。
答案2
也许监狱工具可以派上用场。这是一个为用户设置 chroot 环境的工具,它只提供非常特定的可执行文件,同时限制对某个目录及其子目录的访问。