1 つのコマンドのみを実行する UNIX アカウントの作成

1 つのコマンドのみを実行する UNIX アカウントの作成

ユーザーが単一のコマンドのみを実行できるようにするユーザーアカウントをSolarisで作成する方法はありますか?ログインシェルや何もありません。/usr/bin/falseinを使用してこれを実行してから、/etc/passwdユーザーをinとして許可できますが、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

許可するコマンドのみを実行するスクリプトを実行するように、そのユーザーのシェルを設定できます。つまり、ユーザーがログインするたびにコマンドが実行され、次にユーザーがログアウトされます。そして「完全なシェル」がないので、最新のトレンドを試しているユーザーに対処する必要はありません。 ;)

答え3

RBACを使用してこれを実行し、ユーザーに特権シェル(pfsh、pfcsh、またはpfksh)を提供し、ユーザーが実行できるコマンドの構成ファイルを生成できるかどうか疑問に思います。

関連情報