กลไกการใช้ขึ้นอยู่กับเป้าหมายของคุณ
หากคุณต้องการให้สิ่งที่สะดวกหรือเป็นมิตรกับผู้ใช้ของคุณคุณ/etc/profile
มีเหตุผลเพียงพอหากผู้ใช้ทั้งหมดใช้เชลล์เดียวกัน หากคุณต้องการคำสั่งที่จะดำเนินการเฉพาะเมื่อเข้าสู่ระบบผ่านทางคำสั่งลงในสถานที่ssh
/etc/ssh/sshrc
(หากคุณไม่คำนึงถึงผู้ใช้ที่เอาชนะคำสั่งด้วย~/.ssh/rc
ไฟล์ของตนเอง)
หากคุณต้องการที่จะบังคับให้ผู้ใช้รันโปรแกรมหนึ่งและมีเพียงโปรแกรมหนึ่งแล้วForceCommand
ตัวเลือกตามที่อธิบาย DigitalRoss เป็นวิธีการที่ดี (โดยส่วนตัวแล้วฉันจะ จำกัด ผู้ใช้ด้วยระบบควบคุมการเข้าใช้ที่จำเป็นเช่นAppArmor , SELinux , TOMOYOหรือSMACKเพื่อให้แน่ใจว่าโปรแกรมไม่สามารถอนุญาตให้ผู้ใช้หลบหนีได้ฉันทำงานบน AppArmor มาสิบปีแล้ว เครื่องมือที่ฉันจะเลือกก่อน แต่อื่น ๆ เป็นเครื่องมือที่ดีที่เขียนโดยโปรแกรมเมอร์ที่ยอดเยี่ยม)
หากคุณต้องการให้โปรแกรมหนึ่งโปรแกรมดำเนินการและไม่รบกวนผู้ใช้ในทางใดทางหนึ่งวิธีที่ดีที่สุดคือใช้pam_exec(8)
โมดูลซึ่งไม่สามารถข้ามได้ทำงานโดยไม่คำนึงถึงเชลล์และให้ความสามารถในการเรียกใช้ในฐานะผู้ใช้หรือในฐานะผู้ใช้ บัญชีของโปรแกรมที่ดำเนินการอนุมัติ manpage ให้ตัวอย่างต่อไปนี้:
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
ไฟล์ควบคุมของคุณ