การเปลี่ยนล็อกอินเชลล์ไม่จำเป็นต้องป้องกันผู้ใช้จากการพิสูจน์ตัวตน (ยกเว้นในบางบริการที่ตรวจสอบว่ามีการกล่าวถึงเชลล์ของผู้ใช้หรือไม่/etc/shells
)
ผู้คนยังคงสามารถรับรองความถูกต้องกับบริการต่างๆที่ระบบของคุณมอบให้แก่ผู้ใช้ระบบปฏิบัติการยูนิกซ์และอาจได้รับอนุญาตให้ดำเนินการบางอย่างแม้ว่าอาจจะไม่ได้รันคำสั่งโดยพลการโดยตรง
การเปลี่ยนเชลล์เป็น/bin/false
หรือ/usr/sbin/nologin
จะป้องกันไม่ให้คำสั่งที่รันบนเซอร์วิสเหล่านั้นที่สามารถใช้เพื่อรันคำสั่ง (ล็อกอินคอนโซล, ssh, telnet, rlogin, rexec ... ) ดังนั้นส่งผลกระทบต่อการอนุญาตสำหรับบางบริการเท่านั้น
ตัวอย่างssh
เช่นยังคงอนุญาตให้ทำการส่งต่อพอร์ต
passwd -l
จะปิดการใช้งานการตรวจสอบรหัสผ่าน แต่ผู้ใช้อาจได้รับอนุญาตให้ใช้วิธีการตรวจสอบสิทธิ์อื่น ๆ (เช่นเดียวauthorized_keys
กับssh
)
ด้วยpam
บน Linux อย่างน้อยคุณสามารถใช้pam_shells
โมดูลเพื่อ จำกัด การตรวจสอบหรือการอนุญาตให้ผู้ใช้ที่มีเปลือกที่ได้รับอนุญาต (ที่ระบุไว้ใน/etc/shells
) สำหรับssh
คุณจะต้องดำเนินการที่ระดับการอนุมัติ ( account
) เช่นเดียวกับการรับรองความถูกต้องsshd
ใช้pam
นอกเหนือจากวิธีการรับรองความถูกต้องอื่น ๆ (เช่นauthorized_keys
) หรือคุณสามารถทำได้ด้วยsshd_config
คำสั่งใน/etc/ssh/sshd_config
(เช่นAllowUsers
และเพื่อน ๆ )
ระวังแม้ว่าการเพิ่มข้อ จำกัด บางอย่างในการให้สิทธิ์ pam ทั่วโลกอาจป้องกันไม่ให้มีการเรียกใช้cron
งานในฐานะผู้ใช้เหล่านั้น
/bin/false
/bin/true
ดูเหมือนว่าพบได้บ่อยกว่า