Механізм використання залежить від ваших цілей.
Якщо ви хочете надати щось зручне або дружнє для своїх користувачів, тоді ви /etc/profile
достатньо розумні, якщо всі ваші користувачі використовують однакову оболонку. Якщо ви хочете, щоб команди виконувалися лише під час входу через ssh
, розмістіть команди в /etc/ssh/sshrc
. (Якщо ви не заперечуєте проти того, щоб користувачі перекреслили команди з власним ~/.ssh/rc
файлом.)
Якщо ви хочете змусити користувача виконати одну програму та лише одну програму , то ForceCommand
варіант, описаний DigitalRoss, є хорошим підходом. (Я особисто хотів би обмежити користувача системою обов'язкового контролю доступу, таким як AppArmor , SELinux , TOMOYO або SMACK , щоб програма не могла дозволити користувачеві вийти з ладу . Я працював над AppArmor десять років, тому це Я б вибрав перший, але інші - це прекрасні інструменти, написані відмінними програмістами.)
Якщо ви просто хочете, щоб одна програма виконувалась і не турбувала користувача будь-яким способом , то найкращим підходом є використання 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
контрольний файл.