Jor*_*ath 6 users account-restrictions
我正在创建一个具有以下详细信息的新用户:
useradd -d /var/www/html/testuser.com -G users testuser
Run Code Online (Sandbox Code Playgroud)
我继续为用户创建一个新密码并尝试通过 SSH 登录,我登陆 /var/www/html/testuser.com 但我仍然可以返回目录。我想限制用户权限,以便他们只能管理 testuser.com 和兄弟姐妹中的内容(以便他们可以执行所有正常操作),我不希望用户能够返回目录并有效地拥有 root使用权。
用户不会因为可以浏览其他目录而“有效地拥有 root 访问权限”。所有具有外壳访问权限的用户都可以浏览软件安装——这毕竟不是机密信息,因为它可以从任意数量的站点下载。如果您不想向所有 shell 用户公开某些目录,请给予他们适当的限制性权限。
如果你想有第二层安全,你可以让账户更受限制。如果你只想让这些用户浏览、上传和下载 下的文件/var/www/html/testuser.com,那就不要给他们一个shell账号,给他们一个只能使用SFTP的受限账号。您可以指定特定帐户的选项sshd_config有Match块。(将其放在文件末尾,因为该Match指令会扩展到下一个Match指令或文件末尾。)
Match User testuser
Force-command internal-sftp
ChrootDirectory /var/www/html/testuser.com
Run Code Online (Sandbox Code Playgroud)
如果你想允许用户使用更多的命令,比如 scp 和 rsync,但不是一般的 shell 访问,使用rssh或scponly作为他们帐户的 shell,并安装和配置 rssh 或 scponly 来指定你想要的命令允许(请参阅您是否需要 SCP 的外壳?)。
如果你想给一个只允许运行几个列入白名单的程序的 shell 帐户,请将它们的 shell 设为受限 shell。请注意,这些用户将能够根据文件权限访问其主目录之外的文件。
如果您想提供完整的 shell 访问权限,但使除主目录之外的所有内容都不可见,那么您需要创建某种形式的jail。最弱的监狱形式是chroot jail,它将用户限制在目录树的一个分支上。限制用户一个chroot一样容易指定的ChrootDirectory中sshd_config; 但是,由于用户无法退出监狱,因此该目录必须包含用户将使用的所有程序及其数据。您可以使用绑定挂载使一些目录(例如/usr)在 jail 中可见。