การจัดการบัญชีผู้ใช้

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 03-06-2555

ดูแลโดย WIPAT


เป้าหมาย

  • ให้เข้าใจการจัดการบัญชีของ groups และ users


  1. ใช้คำสั่ง useradd -D เพื่อดูค่า default ที่เตรียมไว้ในการสร้างบัญชีผู้ใช้
  2. สร้างผู้ใช้ใหม่ด้วยรูปแบบคำสั่ง sudo useradd -m -s /bin/bash LOGIN-NAME
    โดยที่ -m คือสั่งให้สร้าง home ด้วย, -s /bin/bash คือให้ใช้ shell แบบ /bin/bash, LOGIN-NAME คือ user login ของผู้ที่เข้าใช้
  3. หลังจากสร้างบัญชีผู้ใช้แล้ว ใช้คำสั่ง sudo passwd LOGIN-NAME ในการเปลี่ยนรหัสผ่านของผู้ใช้ LOGIN-NAME
  4. ลินุกซ์รุ่นก่อนมี group ชื่อ users เลข GID เป็น 100 ที่เป็น primary group ของผุ้ใช้ทุกคนที่สร้างขึ้นมา และมี umask เป็น 022
  5. แต่ในลินุกซ์ปัจจุบัน ผู้ใช้จะเป็นสมาชิกของ primary group ที่เป็นชื่อเดียวกับ user ซึ่งก็คือเป็น primary group ชื่อ LOGIN-NAME และมี umask เป็น 002
  6. ผู้ใช้แต่ละคนอาจเป็นสมาฃิกของหลาย group ได้ แต่ในขณะทำงานจะมีเพียง group เดียวที่มีผล เรียกว่า effective group
  7. คำสั่ง id ใช้สำหรับดูเลข user id และ group id ที่ user นี้สังกัดอยู่ เรียงลำดับตัวแรกสุดคือของ groups ชื่อ group ที่แสดงตนอยู่
  8. คำสั่ง groups ใช้สำหรับแสดงรายชื่อ groups ที่ user นี้สังกัดอยู่ เรียงลำดับตัวแรกสุดคือชื่อ group ที่แสดงตนอยู่
  9. สั่งเปลี่ยนสังกัด group ที่แสดงตนด้วยคำสั่ง newgrp MY- GROUP โดยที่ MY-GROUP ต้องเป็นชื่อ group ที่สังกัดอยู่
  10. สร้าง group ใหม่ด้วยรูปแบบคำสั่ง sudo groupadd NEW-GROUP โดยที่ NEW-GROUP คือชื่อ group ที่ต้องการสร้างใหม่
  11. การลบ group ใช้รูปแบบคำสั่ง sudo groupdel B AD-GROUP โดยที่ BAD-GROUP คือชื่อ group ที่ต้องการลบ
  12. เพิ่มชื่อผู้ใช้เข้าไปให้สังกัด group อื่นด้วย ใช้รูปแบบคำสั่ง sudo gpasswd -a MY-NAME NEW-GROUP โดยที่ MY-NAME คือชื่อ user และ NEW-GROUP คือชื่อ group
  13. ลบชื่อผู้ใช้ออกไปจากสังกัด group ใช้รูปแบบคำสั่ง sudo gpasswd -d MY-NAME NEW-GROUP โดยที่ MY-NAME คือชื่อ user และ NEW-GROUP คือชื่อ group
  14. แฟ้ม /etc/passwd เก็บรายชื่อผู้ใช้ แบ่งช่องข้อมูลคั่นด้วยเครื่องหมาย : มีดังนี้ ชอง 1 เป็น login ของผู้ใช้, ช่อง 2 เป็นรหัสผ่าน จะมีค่าเป็น x ถ้ามีแฟ้ม /etc/shadow ด้วย,
    ช่อง 3 เป็นเลข id ของผู้ใช้, ช่อง 4 เป็นเลข primary group ของผู้ใช้, ช่อง 5 เป็นข้อมูลของผู้ใช้, ข้อ 6 เป็น home ของผู้ใช้, ช่อง 7 เป็น shell ของผู้ใช้
  15. แฟ้ม /etc/shadow เก็บรหัสผ่านของผู้ใช้ มีการเข้ารหัสไว้ด้วย แฟ้มนี้อนุญาติเฉพาะสิทธิ์ระดับ root เท่านั้นที่อ่าน/เขียนได้
  16. แฟ้ม /etc/group เก็บรายชื่อของ groups ไว้ แบ่งช่องข้อมูลคั่นด้วยเครื่องหมาย : มีดังนี้ ชอง 1 เป็นชื่อของ group , ช่อง 2 เป็นรหัสผ่าน จะมีค่าเป็น x ถ้ามีแฟ้ม /etc/gshadow ด้วย,
    ช่อง 3 เป็นเลข id ของ group, ช่อง 4 เป็นรายชื่อสมาชิกในสังกัดคั่นด้วยเครื่องหมาย ,
  17. แฟ้ม /etc/gshadow เก็บรหัสผ่านของ group มีการเข้ารหัสไว้ด้วย แฟ้มนี้อนุญาติเฉพาะสิทธิ์ระดับ root เท่านั้นที่อ่าน/เขียนได้
  18. แฟ้ม /etc/login.defs ใช้เก็บข้อมูลแม่แบบในการสร้างบัญชีผู้ใช้ มีค่าที่สำคัญคือ MAIL_DIR เป็น directory ที่ใช้ในการเก็บอีเมล์,
    PASS_MAX_DAYS, PASS_MIN_DAYS, PASS_MAX_LEN, PASS_WARN_AGE เป็นข้อกำหนดเกี่ยวกับรหัสผ่าน,
    UID_MIN, UID_MAX เป็นค่าที่ใช้กับคำสั่ง useradd, GID_MIN, GID_MAX เป็นค่าที่ใช้กับคำสั่ง groupadd
  19. directory /etc/skel เก็บค่าต่างๆที่จัดให้ user ตอนสร้างบัญชีผู้ใช้เช่นแฟ้ม .bash_logout, .bashrc, .profile เป็นต้น
  20. คำสั่ง usermod ใช้สำหรับปรับปรุงข้อมูลของ user
  21. คำสั่ง groupmod ใช้สำหรับปรับปรุงข้อมูลของ group
  22. คำสั่ง passwd -l หรือ usermod -L ใช้สำหรับ lock รหัสผ่านของผู้ใช้ ด้วยการเติมเครื่องหมาย ! ไว้ที่หน้าสุดของรหัสผ่านเดิม
  23. คำสั่ง passwd -u หรือ usermod -U ใช้สำหรับปลด lock รหัสผ่านของผู้ใช้
  24. เราสามารถ lock บัญชีผู้ใช้ด้วยการใช้เครื่องหมาย * แทน x ในแฟ้ม /etc/passwd ที่เป็นแบบ shadow
    หรือเปลี่ยน default shell ในแฟ้ม /etc/passwd ให้เป็น /bin/false ก็ได้
  25. คำสั่ง sudo chage ใช้ปรับเปลี่ยนข้อกำหนดของรหัสผ่าน ใช้คำสั่ง sudo chage -l เพื่อดูข้อมูลของรหัสผ่าน
  26. ลบบัญชีผู้ใช้ด้วยรูปแบบคำสั่ง userdel -r LOGIN-NAME โดยที่ -r คือให้ลบ home พร้อมข้อมูลทิ้งด้วย, LOGIN-NAME คือ login ของผู้ใช้