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


13

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

Answers:


15

如果用户只能通过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

嗯,你们都是对的。我所做的是创建一个脚本,该脚本在提示符下提供菜单,并在服务器上的.ssh / authorized_keys中使用强制检查命令,该命令位于授权用户的密钥前面。现在,这使他可以ssh到服务器,并在提示符下给出一个不错的菜单,其中包含多个要执行的命令。没有其他可以运行的了。快乐的时光!
Will Dowling 2010年

2
编辑; 您需要以下选项来保护强制命令:“无端口转发,无X11转发,无代理转发,无pty”。
东武

11

您可以将该用户的shell设置为只运行您要允许的命令的脚本:每当用户登录时,该命令就会运行,然后用户会注销。而且,由于没有“完整外壳”,因此您不必面对尝试时髦内容的用户;)


0

我想知道您是否可以使用RBAC进行此操作,并为用户提供特权外壳程序(pfsh,pfcsh或pfksh),并为允许用户运行的命令创建配置文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.