คุณจะบอกได้อย่างไรว่าผู้ใช้“ ได้รับอนุญาตให้เข้าสู่ระบบ” บน Linux?


12

คำถามง่าย ๆ ฉันต้องการแสดงรายการบัญชีผู้ใช้ทั้งหมดที่สามารถเข้าสู่ระบบของฉัน แต่ฉันไม่แน่ใจว่าผู้ใช้ทั้งหมดใน / etc / passwd คือผู้ใช้ "สามารถเข้าสู่ระบบ" หรือไม่?

รายละเอียด:

ฉันเห็นผู้ใช้ที่ตั้งค่าเปลือกเป็น/usr/sbin/nologinและ/bin/falseใน/etc/passwdหมายความว่าพวกเขาไม่สามารถเข้าสู่ระบบได้หรือไม่?

ฉันรู้ว่าฉันสามารถตั้งรหัสผ่านที่เข้ารหัสของผู้ใช้เป็น*หรือ!ใน/etc/shadowการปิดการใช้งานบัญชีดังนั้น "ผู้ใช้ที่ถูกปิดใช้งาน" ควรได้รับการปฏิบัติเช่นเดียวกับผู้ใช้ "ไม่สามารถเข้าสู่ระบบ" ใช่ไหม?

คำตอบ:


13

สิ่งนี้ขึ้นอยู่กับคำจำกัดความของคุณว่า "การเข้าสู่ระบบ" - ในทางเทคนิคผู้ใช้ที่มีอยู่ใน/etc/passwd& /etc/shadowเป็น "ผู้ใช้ที่ถูกต้อง" และในทางทฤษฎีสามารถเข้าสู่ระบบภายใต้สถานการณ์ที่เหมาะสม

วิธีการที่คุณพูดถึงอยู่ในหมวดหมู่กว้าง ๆ ดังต่อไปนี้:

  • ผู้ใช้ที่มี "ล็อค" บัญชี
    ผู้ใช้มีรหัสผ่านที่มีการตั้งค่า*, !หรือบางกัญชาอื่น ๆ ที่จะไม่เคยแข่งขันถูก "ล็อคออก" (ในดวงอาทิตย์วันประชุมก็มักจะ*LK*สำหรับ "ล็อค")
    ผู้ใช้เหล่านี้ไม่สามารถเข้าสู่ระบบได้โดยพิมพ์รหัสผ่านแต่พวกเขายังสามารถเข้าสู่ระบบโดยใช้กลไกการตรวจสอบสิทธิ์อื่น ๆ (คีย์ SSH เป็นต้น)

  • ผู้ใช้ที่มีเชลล์ "ที่ไม่ต้องมีการโต้ตอบ"
    ผู้ใช้ที่บัญชีมี "เชลล์ที่ไม่ใช่แบบโต้ตอบ" ( /bin/false, /sbin/nologin) ไม่สามารถลงชื่อเข้าใช้แบบโต้ตอบได้ - นั่นคือพวกเขาไม่สามารถรับคำสั่งเชลล์เพื่อเรียกใช้คำสั่งได้ การดำเนินการคำสั่งหากผู้ใช้มีคีย์ SSH บนระบบ)
    ผู้ใช้เหล่านี้อาจยังสามารถเข้าสู่ระบบเพื่อทำสิ่งต่าง ๆ เช่นอ่าน / ส่งอีเมล (ผ่าน POP / IMAP และ SMTP AUTH) การตั้งค่าเชลล์ที่ไม่ต้องมีการโต้ตอบสำหรับผู้ใช้ที่ไม่จำเป็นต้องใช้เชลล์ (และสำหรับ "บัญชีบริการ" ส่วนใหญ่) ถือว่าเป็นแนวปฏิบัติที่ดี

ดังนั้นขึ้นอยู่กับเกณฑ์ของคุณสำหรับ "สามารถเข้าสู่ระบบ" คุณอาจต้องการตรวจสอบสิ่งเหล่านี้อย่างใดอย่างหนึ่งหรือทั้งสองอย่าง


6

มีความแตกต่างระหว่างการปิดใช้งานผู้ใช้และการตั้งค่าเชลล์เป็น / bin / false หรือคล้ายกัน

การตั้งค่าเชลล์เป็น / bin / false ป้องกันผู้ใช้จากการรับเชลล์ แต่พวกเขายังสามารถล็อกอินเข้าสู่ระบบได้หากมีการใช้ผู้ใช้โลคัลเป็นอย่างอื่น (การตรวจสอบเมล, ftp และอื่น ๆ ) การปิดใช้งานผู้ใช้ทำให้เขาไม่สามารถใช้บริการใด ๆ ของเซิร์ฟเวอร์ที่ใช้ผู้ใช้ภายใน


ดังนั้นจริง ๆ แล้วผู้ใช้ทั้งหมดใน / etc / passwd คือผู้ใช้ "สามารถเข้าสู่ระบบ" แต่บางคนถูกปิดการใช้งาน (*!) และบางส่วนของพวกเขาถูก จำกัด (/ bin / false)?
harryz

3

นอกเหนือจากข้างต้นผู้ใช้อาจถูกล็อคจากระบบแม้ว่าการป้อนรหัสผ่านของพวกเขาจะดูถูกต้องโดยใช้วิธีการที่แตกต่างกันหลายวิธี

/etc/security/access.conf สามารถใช้เพื่อ จำกัด ผู้ที่สามารถเข้าสู่ระบบได้

มีโมดูล PAM จำนวนมากที่สามารถกำหนดค่าเพื่อ จำกัด ผู้ใช้เฉพาะหรือแก้ไขพฤติกรรมการเข้าสู่ระบบตามความต้องการ (เช่นไม่มีโฮมไดเรกทอรีบนเซิร์ฟเวอร์ไม่อนุญาตให้ล็อกอิน)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.