如何创建一个可以通过 SSH 登录但不能使用 shell 命令的用户?

如何创建一个可以通过 SSH 登录但不能使用 shell 命令的用户?

如何创建可以通过 SSH 登录但不能使用 shell 命令的新用户?我尝试将其设置/bin/false为用户的默认 shell,但之后我就无法再通过 SSH 登录。

答案1

您可以创建一个新的、小型的“shell”(我使用引号,因为它不是一个真正的 shell),如下所示:

  1. 以 root 身份在/bin目录中创建一个新文件,比如说fakesh

  2. /bin/fakesh在文件中添加以下代码:

    #!/bin/bash
    echo -n "$ "
    while read cmd ; do 
        if [ "$cmd" = "exit" ]; then break; fi
        if [ "$cmd" != "" ]; then echo "The only one available command is: exit"; fi
        echo -n "$ "
    done
    
  3. 保存文件并使其对每个人都可执行:

    chmod +x /bin/fakesh
    

完成这些后,只需将其设置/bin/fakesh为用户的默认 shell 即可。用户将可以通过 ssh 登录其帐户,但除了 之外,他将无法执行任何命令exit

相关内容