我的家庭服务器上使用的是 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 环境的工具,它只提供非常特定的可执行文件,同时限制对某个目录及其子目录的访问。