Mekanisme untuk menggunakan tergantung pada tujuan Anda.
Jika Anda ingin memberikan sesuatu yang nyaman atau ramah untuk pengguna Anda, maka Anda /etc/profile
cukup masuk akal jika semua pengguna Anda menggunakan shell yang sama. Jika Anda ingin agar perintah hanya dieksekusi saat masuk melalui ssh
, tempatkan perintah /etc/ssh/sshrc
. (Jika Anda tidak keberatan pengguna menimpa perintah dengan ~/.ssh/rc
file mereka sendiri .)
Jika Anda ingin memaksa pengguna untuk menjalankan satu program, dan hanya satu program , maka ForceCommand
opsi seperti yang dijelaskan oleh DigitalRoss adalah pendekatan yang baik. (Saya pribadi lebih lanjut akan membatasi pengguna dengan kontrol akses mandatory sistem seperti AppArmor , SELinux , Tomoyo , atau SMACK , untuk memastikan program tidak dapat memungkinkan pengguna untuk melarikan diri. Saya telah bekerja di AppArmor selama bertahun-tahun sepuluh, jadi itulah alat saya akan memilih pertama, tetapi yang lain adalah alat yang baik ditulis oleh programmer yang sangat baik.)
Jika Anda hanya ingin satu program dijalankan dan tidak mengganggu pengguna dengan cara apa pun , maka pendekatan terbaik adalah dengan menggunakan pam_exec(8)
modul, yang tidak dapat di-bypass, berfungsi terlepas dari shell, dan memberikan kemampuan yang mudah untuk dijalankan sebagai pengguna atau sebagai pengguna akun program yang melakukan otorisasi. Halaman manual memberikan contoh berikut:
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.
Ini bisa diperpanjang untuk berjalan pada auth
, account
, password
, dan session
tindakan; mungkin session
akan lebih baik untuk dieksekusi saat login. Cukup tambahkan baris seperti:
session optional pam_exec.so log=/var/log/ssh_login_cmd /usr/local/bin/ssh_cmd
ke /etc/pam.d/sshd
file kontrol Anda .