如何创建具有受限 shell 的用户

如何创建具有受限 shell 的用户

我知道还有其他类似的问题,我已经阅读了其中一些。但这并没有解决我的问题。 我想创建一个用户,该用户只能通过 sftp 访问其主目录,并且不允许查看此目录上方的文件/文件夹。他还应该能够在此目录中运行 shell 命令。(例如启动节点进程)

到目前为止,sftp 访问正常。用户被限制在其主目录中,并且可以编辑/删除文件。

我尝试创建一个符号链接sudo ln -s /bin/bash /bin/rbash,它显示file already existing,因此我将用户 shell 设置为 ,sudo usermod -s /bin/rbash user但如果用户通过 shh 登录,它会显示 Ubuntu 欢迎文本,然后/bin/rbash: No such file or directory。如果我将 shell 设置为 bash,也会发生同样的情况。

我的 sshd_conf 现在看起来像这样:

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

Match group sftp
        ChrootDirectory /home/userdirectory
        AllowTcpForwarding no
#       ForceCommand internal-sftp

我也尝试创建一个从/bin/bash到的符号链接/home/userdirectory/bin/bash,但是当用户通过 ssh 登录时,它显示Too many symbolic links

我复制/bin/bash到了/home/userdirectory/bin/bash,上面写着no such file or directory

答案1

我通过复制/bin/bash到解决了这个问题/home/userdirectory/bin/bash

之后我列出了所需的库

ldd /bin/bash

并将它们全部复制到 chroot 下的相应目录中/home/userdirectory

如果您想要在 shell 中拥有更多命令,您还必须将它们从复制/bin/home/userdirectory/bin并添加它们的库。

相关内容