使用するメカニズムは、目的によって異なります。
あなたが何かを提供したい場合に便利か優しいのユーザーのために、そしてあなたは/etc/profile
、すべてのユーザーが同じシェルを使用する場合は合理的に十分です。経由でログインしたときにのみコマンドを実行する場合は、コマンドをssh
に配置します/etc/ssh/sshrc
。(ユーザーが自分の~/.ssh/rc
ファイルでコマンドを上書きしてもかまわない場合。)
あなたがしたい場合は、強制一つのプログラム、実行するユーザーをして1つのプログラムだけ、その後、ForceCommand
DigitalRossによって記載されているようにオプションを良いアプローチです。(私は個人的に、ユーザーがAppArmor、SELinux、TOMOYO、またはSMACKなどの必須のアクセス制御システムでさらに制限し、プログラムがユーザーの脱出を許可しないことを保証します。私はAppArmorに10年間取り組んできました。私が最初に選択するツールですが、他のツールは優秀なプログラマーによって書かれた素晴らしいツールです。)
1つのプログラムだけを実行し、ユーザーの邪魔にならないようにする場合、最適なアプローチはpam_exec(8)
、バイパスされず、シェルに関係なく機能し、ユーザーまたはユーザーとして実行する簡単な機能を提供するモジュールを使用することです。承認を実行するプログラムのアカウント。マンページには次の例が示されています。
Add the following line to /etc/pam.d/passwd to rebuild the
NIS database after each local password change:
passwd optional pam_exec.so seteuid make -C /var/yp
This will execute the command
make -C /var/yp
with effective user ID.
これは、上で実行するように拡張することができauth
、account
、password
、およびsession
アクション。session
ログイン時に実行するのがおそらく最善でしょう。次のような行を追加するだけです。
session optional pam_exec.so log=/var/log/ssh_login_cmd /usr/local/bin/ssh_cmd
あなたへの/etc/pam.d/sshd
制御ファイル。