Kullanılacak mekanizma hedeflerinize bağlıdır.
Kullanıcılarınız için uygun veya dostça bir şey sağlamak istiyorsanız /etc/profile
, tüm kullanıcılarınız aynı kabuğu kullanıyorsa, yeterince makul. Komutların yalnızca üzerinden oturum açarken yürütülmesini istiyorsanız, ssh
komutları içine yerleştirin /etc/ssh/sshrc
. (Kullanıcıların komutları kendi ~/.ssh/rc
dosyalarıyla geçersiz kılmalarına aldırmazsanız .)
Bir kullanıcıyı bir programı ve yalnızca bir programı yürütmeye zorlamak istiyorsanız , DigitalRoss tarafından açıklanan seçenek iyi bir yaklaşımdır. (Ben şahsen programın bir kullanıcının kaçmasına izin verememesini sağlamak için kullanıcıyı AppArmor , SELinux , TOMOYO veya SMACK gibi zorunlu bir erişim kontrol sistemi ile sınırlayacağım . On yıl boyunca AppArmor üzerinde çalıştım, bu yüzden önce seçerim, ama diğerleri mükemmel programcılar tarafından yazılmış iyi araçlardır.)ForceCommand
Sadece bir programın çalıştırılmasını ve kullanıcıyı herhangi bir şekilde rahatsız etmemesini istiyorsanız , en iyi yaklaşım, pam_exec(8)
atlanamayan, kabuktan bağımsız olarak çalışan ve kullanıcı veya kullanıcı olarak kolayca çalışabilme modülünü kullanmaktır. yetkilendirme yapan programın hesabı. Manpage aşağıdaki örneği vermektedir:
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.
Bu çalıştırmak için uzun olabilir auth
, account
, password
ve session
eylemler; muhtemelen session
giriş yaptıktan sonra yürütmek için en iyi olurdu. Sadece şöyle bir satır ekleyin:
session optional pam_exec.so log=/var/log/ssh_login_cmd /usr/local/bin/ssh_cmd
sizin için /etc/pam.d/sshd
kontrol dosyası.