web-dev-qa-db-ja.com

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

ユーザーが1つのコマンドのみを実行できるようにするユーザーアカウントをSolarisで作成する方法はありますか?ログインシェルなどはありません。 /usr/bin/false/etc/passwdを使用してユーザーをssh <hostname> <command>に移動させることもできますが、もっと良い方法はありますか?

13
Will Dowling

ユーザーが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
15
Barthelemy

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

11
tante

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

0
sleepyweasel