การจัดการบัญชีผู้ใช้
จาก Wiki Opensource
บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 03-06-2555
ดูแลโดย WIPAT
เป้าหมาย
- ให้เข้าใจการจัดการบัญชีของ groups และ users
- ใช้คำสั่ง useradd -D เพื่อดูค่า default ที่เตรียมไว้ในการสร้างบัญชีผู้ใช้
- สร้างผู้ใช้ใหม่ด้วยรูปแบบคำสั่ง sudo useradd -m -s /bin/bash LOGIN-NAME
โดยที่ -m คือสั่งให้สร้าง home ด้วย, -s /bin/bash คือให้ใช้ shell แบบ /bin/bash, LOGIN-NAME คือ user login ของผู้ที่เข้าใช้ - หลังจากสร้างบัญชีผู้ใช้แล้ว ใช้คำสั่ง sudo passwd LOGIN-NAME ในการเปลี่ยนรหัสผ่านของผู้ใช้ LOGIN-NAME
- ลินุกซ์รุ่นก่อนมี group ชื่อ users เลข GID เป็น 100 ที่เป็น primary group ของผุ้ใช้ทุกคนที่สร้างขึ้นมา และมี umask เป็น 022
- แต่ในลินุกซ์ปัจจุบัน ผู้ใช้จะเป็นสมาชิกของ primary group ที่เป็นชื่อเดียวกับ user ซึ่งก็คือเป็น primary group ชื่อ LOGIN-NAME และมี umask เป็น 002
- ผู้ใช้แต่ละคนอาจเป็นสมาฃิกของหลาย group ได้ แต่ในขณะทำงานจะมีเพียง group เดียวที่มีผล เรียกว่า effective group
- คำสั่ง id ใช้สำหรับดูเลข user id และ group id ที่ user นี้สังกัดอยู่ เรียงลำดับตัวแรกสุดคือของ groups ชื่อ group ที่แสดงตนอยู่
- คำสั่ง groups ใช้สำหรับแสดงรายชื่อ groups ที่ user นี้สังกัดอยู่ เรียงลำดับตัวแรกสุดคือชื่อ group ที่แสดงตนอยู่
- สั่งเปลี่ยนสังกัด group ที่แสดงตนด้วยคำสั่ง newgrp MY- GROUP โดยที่ MY-GROUP ต้องเป็นชื่อ group ที่สังกัดอยู่
- สร้าง group ใหม่ด้วยรูปแบบคำสั่ง sudo groupadd NEW-GROUP โดยที่ NEW-GROUP คือชื่อ group ที่ต้องการสร้างใหม่
- การลบ group ใช้รูปแบบคำสั่ง sudo groupdel B AD-GROUP โดยที่ BAD-GROUP คือชื่อ group ที่ต้องการลบ
- เพิ่มชื่อผู้ใช้เข้าไปให้สังกัด group อื่นด้วย ใช้รูปแบบคำสั่ง sudo gpasswd -a MY-NAME NEW-GROUP โดยที่ MY-NAME คือชื่อ user และ NEW-GROUP คือชื่อ group
- ลบชื่อผู้ใช้ออกไปจากสังกัด group ใช้รูปแบบคำสั่ง sudo gpasswd -d MY-NAME NEW-GROUP โดยที่ MY-NAME คือชื่อ user และ NEW-GROUP คือชื่อ group
- แฟ้ม /etc/passwd เก็บรายชื่อผู้ใช้ แบ่งช่องข้อมูลคั่นด้วยเครื่องหมาย : มีดังนี้ ชอง 1 เป็น login ของผู้ใช้, ช่อง 2 เป็นรหัสผ่าน จะมีค่าเป็น x ถ้ามีแฟ้ม /etc/shadow ด้วย,
ช่อง 3 เป็นเลข id ของผู้ใช้, ช่อง 4 เป็นเลข primary group ของผู้ใช้, ช่อง 5 เป็นข้อมูลของผู้ใช้, ข้อ 6 เป็น home ของผู้ใช้, ช่อง 7 เป็น shell ของผู้ใช้ - แฟ้ม /etc/shadow เก็บรหัสผ่านของผู้ใช้ มีการเข้ารหัสไว้ด้วย แฟ้มนี้อนุญาติเฉพาะสิทธิ์ระดับ root เท่านั้นที่อ่าน/เขียนได้
- แฟ้ม /etc/group เก็บรายชื่อของ groups ไว้ แบ่งช่องข้อมูลคั่นด้วยเครื่องหมาย : มีดังนี้ ชอง 1 เป็นชื่อของ group , ช่อง 2 เป็นรหัสผ่าน จะมีค่าเป็น x ถ้ามีแฟ้ม /etc/gshadow ด้วย,
ช่อง 3 เป็นเลข id ของ group, ช่อง 4 เป็นรายชื่อสมาชิกในสังกัดคั่นด้วยเครื่องหมาย , - แฟ้ม /etc/gshadow เก็บรหัสผ่านของ group มีการเข้ารหัสไว้ด้วย แฟ้มนี้อนุญาติเฉพาะสิทธิ์ระดับ root เท่านั้นที่อ่าน/เขียนได้
- แฟ้ม /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 - directory /etc/skel เก็บค่าต่างๆที่จัดให้ user ตอนสร้างบัญชีผู้ใช้เช่นแฟ้ม .bash_logout, .bashrc, .profile เป็นต้น
- คำสั่ง usermod ใช้สำหรับปรับปรุงข้อมูลของ user
- คำสั่ง groupmod ใช้สำหรับปรับปรุงข้อมูลของ group
- คำสั่ง passwd -l หรือ usermod -L ใช้สำหรับ lock รหัสผ่านของผู้ใช้ ด้วยการเติมเครื่องหมาย ! ไว้ที่หน้าสุดของรหัสผ่านเดิม
- คำสั่ง passwd -u หรือ usermod -U ใช้สำหรับปลด lock รหัสผ่านของผู้ใช้
- เราสามารถ lock บัญชีผู้ใช้ด้วยการใช้เครื่องหมาย * แทน x ในแฟ้ม /etc/passwd ที่เป็นแบบ shadow
หรือเปลี่ยน default shell ในแฟ้ม /etc/passwd ให้เป็น /bin/false ก็ได้ - คำสั่ง sudo chage ใช้ปรับเปลี่ยนข้อกำหนดของรหัสผ่าน ใช้คำสั่ง sudo chage -l เพื่อดูข้อมูลของรหัสผ่าน
- ลบบัญชีผู้ใช้ด้วยรูปแบบคำสั่ง userdel -r LOGIN-NAME โดยที่ -r คือให้ลบ home พร้อมข้อมูลทิ้งด้วย, LOGIN-NAME คือ login ของผู้ใช้