วิธีจำกัดการเข้าสู่ระบบของผู้ใช้บน Ubuntu

บทความนี้จะกล่าวถึงการจัดการระบบพื้นฐาน ในด้านการตรวจสอบสิทธิการเข้าถึงทั้งหมดของผู้ใช้ในระบบ ซึ่งจะประกอบไปด้วยวิธีการจำกัดการเข้าถึง 3 วิธี ตามขั้นตอนต่อไปนี้

1.วิธีจำกัดการเข้าถึงด้วยวิธี /etc/passwd

วิธีหนึ่งในการจำกัดความสามารถในการเข้าสู่ระบบคือการตั้งค่าเชลล์การเข้าสู่ระบบของบัญชีให้เป็นค่าพิเศษ ในตัวอย่างนี้คือผู้ใช้ messagebus จะสามารถใช้ grep เพื่อค้นหาภายในไฟล์ /etc/passwd

less /etc/passwd | grep messagebus

ค่าสุดท้ายคือการรันคำสั่งเมื่อล็อกอินสำเร็จ ในกรณีนี้ ค่าจะถูกตั้งเป็น /usr/sbin/nologin หากพยายามเปลี่ยนไปใช้ผู้ใช้ messagebus โดยใช้ sudo su จะเกิดความล้มเหลว

sudo su messagebus

คุณจะได้รับข้อความนี้เนื่องจาก messagebus ถูกตั้งค่าเป็น /usr/sbin/nologin คุณสามารถใช้เครื่องมือ usermod เพื่อเปลี่ยนการเข้าสู่ระบบของผู้ใช้หลัก (โดยปกติคือ /bin/bash) เป็นผู้ใช้ที่ไม่มีอยู่จริง เช่น nologin เพื่อป้องกันไม่ให้ผู้ใช้เข้าสู่ระบบ

sudo usermod -s /usr/sbin/nologin username

2.วิธีจำกัดการเข้าถึงด้วย /etc/shadow

เป็นอีกวิธีในการจำกัดการเข้าถึงที่คล้ายกันคือการใช้ไฟล์ /etc/shadow ไฟล์นี้ประกอบด้วยค่ารหัสผ่านแบบ hash ซึ่งเป็นการเข้ารหัสแบบทางเดียวไม่สามารถถอดรหัสของผู้ใช้ทุกคนบนระบบได้ โดยสามารถใช้คำสั่ง less เพื่อดูไฟล์ทั้งหมด

sudo less /etc/shadow

จากรูปจะเห็นได้ว่า

  • รหัสผ่านแบบ hash จะมีลักษณะเป็นแบบ john: $6$XdmKE…
  • บัญชีที่มีเครื่องหมายดอกจัน (*) จะเป็นการแทนค่าที่บอกว่าเป็นรหัสไม่ซับซ้อน บัญชีที่มีเครื่องหมายดอกจันในช่องคือ ไม่ได้ตั้งรหัสผ่านไว้ และไม่สามารถตรวจสอบสิทธิ์ด้วยรหัสผ่านได้ทางเราไม่เปลี่ยนแปลงสิ่งนี้ เราสามารถปิดการใช้งานค่ารหัสผ่าน (ซึ่งมีผลทำให้บัญชีมีรหัสผ่านเทียบเท่ากับค่าดอกจัน) โดยใส่เครื่องหมายอัศเจรีย์ (!)

คำสั่งต่อ 2 คำสั่งต่อไปนี้สามารถล็อคเฉพาะบัญชีได้

เราจะให้คำสั่ง passwd ที่สามารถล็อคได้ด้วยแฟล็ก -l และปลดล็อคด้วยแฟล็ก -u

sudo passwd -l john
sudo less /etc/shadow | grep john

จากรูปจะเห็นได้ว่ารหัสผ่านแบบ hash ทำให้ไม่ถูกต้องโดยการใส่เครื่องหมาย ! ไว้ข้างหน้า

สามารถปลดล็อกบัญชีได้ ด้วยการพิมพ์คำสั่งดังต่อไปนี้

sudo passwd -u john

การดำเนินการลักษณะนี้สามารถใช้อีกคำสั่งหนึ่งได้ นั่นคือ คำสั่ง usermod โดย -L คือ ล็อค และ -U คือปลดล็อค

sudo usermod -L john
sudo usermod -U john

3.วิธีจำกัดการเข้าถึงด้วย /etc/nologin

อาจจะมีบางครั้งที่เราจำเป็นต้องปิดการใช้งานการเข้าสู่ระบบบัญชีทั้งหมด ยกเว้นบัญชี root โดยการสร้างไฟล์ที่ /etc/nologin

sudo touch /etc/nologin

วิธีนี้จะช่วยป้องกันไม่ให้บัญชีใด ๆ ที่ไม่มีสิทธิ์ผู้ใช้ระดับสูงเข้าสู่ระบบ ด้วยไฟล์ /etc/nologin ที่ว่างเปล่า นี่เป็นเพียงการทิ้งให้ผู้เข้าใช้กลับไปที่ shell ในเครื่องโดยไม่มีคำอธิบายใด ๆ หรือสามารถเพิ่มข้อความว่าการเข้าสู่ระบบล้มเหลวได้

sudo sh -c 'echo "Planned maintenance. Log in capabilities will be restored at 1730 UTC" > /etc/nologin'

เมื่อพยายามเข้าใช้งานด้วยรหัสผ่าน จะได้รับการแจ้งเตือนต่อไปนี้

order > ssh john@host

ผู้ใช้บัญชี root ยังสามารถเข้าสู่ระบบได้ตามปกติ สามารถลบไฟล์ “/etc/nologin” เพื่อคืนค่าการเข้าสู่ระบบแบบเดิม

sudo rm /etc/nologin

Was this article helpful?

Related Articles