创建一个只执行一个命令的 UNIX 帐户

Wil*_*ing 14 login ssh solaris account-restrictions

有没有办法在 Solaris 中创建一个用户帐户,它只允许用户运行一个命令?没有登录外壳或其他任何东西。我可以用/usr/bin/falsein来做,/etc/passwd然后让用户使用ssh <hostname> <command>,但是有没有更好的方法来做到这一点?

Bar*_*emy 17

如果用户只能通过 ssh 连接,您可以使用强制命令。本质上,每当用户通过 ssh 使用某个密钥和某个用户名进行连接时,您就会强制他执行您在 .ssh/authorized_keys 中确定的命令(或脚本或)。用户发出的命令将被忽略。

例如:

# in .ssh/authorized_keys
command="cd /foo/bar && /path/to/scripts/my_script.sh arg1 arg2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa public_key
Run Code Online (Sandbox Code Playgroud)

  • 已编辑;您需要这些选项来保护强制命令:“no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty”。 (2认同)

tan*_*nte 12

您可以将该用户的 shell 设置为仅运行您希望允许的命令的脚本:每当用户登录时,该命令就会运行,然后用户将被注销。而且由于没有“完整外壳”,您不必与尝试时髦东西的用户打交道;)