有没有一种方法可以在 Solaris 中创建一个仅允许用户运行一个命令的用户帐户?没有登录 shell 或其他任何东西。我可以用/usr/bin/false
in 来做到这一点/etc/passwd
,然后让用户进入ssh <hostname> <command>
,但是有更好的方法吗?
答案1
你可以用一个强制命令如果用户只能通过 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
答案2
您可以将该用户的 shell 设置为仅运行您想要允许的命令的脚本:每当用户登录时,都会运行该命令,然后用户会注销。而且由于没有“完整的外壳”,您不必与尝试时髦东西的用户打交道;)
答案3
我想知道是否可以使用 RBAC 来执行此操作,并为用户提供特权 shell(pfsh、pfcsh 或 pfksh)并为允许用户运行的命令创建配置文件。