Ssh

創建一個只執行一個命令的 UNIX 帳戶

  • March 3, 2017

有沒有辦法在 Solaris 中創建一個只允許使用者執行一個命令的使用者帳戶?沒有登錄外殼或其他任何東西。我可以用/usr/bin/falsein來做/etc/passwd,只是讓使用者去ssh <hostname> <command>,但有更好的方法嗎?

如果使用者只能通過 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

您可以將該使用者的外殼設置為僅執行您想要允許的命令的腳本:每當使用者登錄時,該命令就會執行,然後使用者會被註銷。而且由於沒有“完整外殼”,您不必與嘗試時髦東西的使用者打交道;)

引用自:https://unix.stackexchange.com/questions/3556