我需要一个拥有特定主文件夹的用户。该用户应在其文件夹中进行读写。并且他不能读取服务器中的任何其他文件夹。
答案1
有两种可能的方法可以实现这一点。
首先是为该用户构建一个 chroot 环境。为此,您需要构建一个新的 root,其中包含该用户工作所需的所有必要二进制文件、库等。这相当复杂,尤其是如果您对使用 *nix 还不熟悉的话。
如果您仅要求用户有权访问可以通过 SFTP 完成的文件,则需要使用高于 4.9 的 OpenSSH 版本,而无需任何额外的附加组件或修改。我在这里写了一篇关于这个主题的博客文章:http://blog.frands.net/sftp-only-chroot-users-with-openssh-in-debian-166/
答案2
答案3
将用户绑定到其主目录的最佳方法是使用“rbash”,即“受限”bash。使用这种方法,用户不仅对其他目录没有任何权限,而且对其主目录也没有任何权限。他将无法将目录更改为其他地方(例如,cd /root 将被拒绝)
为此,在创建用户及其主目录后,使用任何编辑器(vi、vim 或 nano)以 root 权限打开 /etc/passwd。找到包含用户记录的行,然后将 /bin/bash 替换为 /bin/rbash
答案4
要添加具有主文件夹的用户,您可以使用此命令(在 ubuntu 上):
useradd -d /home/username -m username
passwd username