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


13

ユーザーが1つのコマンドのみを実行できるようにするSolarisにユーザーアカウントを作成する方法はありますか?ログインシェルなどはありません。私はおそらく/usr/bin/falsein /etc/passwdでそれを行うことができ、ユーザーをssh <hostname> <command>に到達させるだけですが、もっと良い方法がありますか?

回答:


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できるようになり、プロンプトでいくつかのコマンドを実行する素敵なメニューが表示されます。他には何も実行できません。幸せな日々!
ウィルダウリング

2
編集済み; 強制コマンドを保護するには、次のオプションが必要です:「no-port-forwarding、no-X11-forwarding、no-agent-forwarding、no-pty」。
東武

11

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


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.