ユーザーが1つのコマンドのみを実行できるようにするユーザーアカウントをSolarisで作成する方法はありますか?ログインシェルなどはありません。 /usr/bin/false
の/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
そのユーザーのシェルを、許可するコマンドを実行するだけのスクリプトに設定できます。ユーザーがログインするたびにコマンドが実行され、ユーザーはログアウトされます。そして、「完全なシェル」がないので、ファンキーなものを試しているユーザーに対処する必要はありません;)
RBACを使用してこれを実行し、ユーザーに特権シェル(pfsh、pfcsh、またはpfksh)を与えて、ユーザーが実行できるコマンドのプロファイルを作成できるかどうか疑問に思っています。