การจัดการ User บน Linux

การจัดการ User บน Linux



เนื่องจาก root สามารถทำได้ทุกอย่างบนลีนุกซ์ ไม่ว่าจะติดตั้งโปรแกรม แก้ไขคอนฟิก หรือกระทั่งสั่งปิดเครื่อง (shutdown)
คำแนะนำอย่างหนึ่งสำหรับผู้ใช้ลีนุกซ์ ไม่ว่าจะเพิ่งเริ่มต้นหัดใช้งาน หรือใช้งานมานานแล้ว คือล็อกอินเป็นผู้ใช้ธรรมดาที่ไม่ใช่ root ให้เป็นนิสัย เพราะผู้ใช้งานธรรมดา ก็สามารถทำอะไรได้หลายอย่างแล้ว เช่นดูคอนฟิกของเครื่อง แก้ไขไฟล์เท่าที่มีสิทธิ์ และหากทำอะไรผิดพลาดไป ความเสียหายที่เกิดขึ้น ก็จะกระทบในระดับหนึ่ง เท่าที่ผู้ใช้คนนั้นจะทำได้ ไม่กระทบทั้งเครื่อง
จนกว่าจำเป็นต้องมีการแก้ไขคอนฟิกหรือทำอะไรบางอย่างกับลีนุกซ์ที่จำเป็นต้องทำด้วย root ค่อยใช้คำสั่ง su เปลี่ยนผู้ใช้ root (หรือใช้ sudo) และเมื่อหลังจากแก้ไขเสร็จสิ้นแล้ว ก็เปลี่ยนกลับมาเป็น user ธรรมดาอีกครั้ง

การเพิ่มผู้ใช้งาน (USERADD)

ใช้คำสั่ง useradd ตามด้วยชื่อ user ที่ต้องการเพิ่ม เช่นต้องการเพิ่มผู้ใช้งานชื่อ alice
[root@cent6 ~]# useradd alice
คำสั่ง id ตามด้วยชื่อผู้ใช้งาน สามารถใช้ตรวจสอบข้อมูลของผู้ใช้ได้ เช่น uid, gid ของผู้ใช้
[root@cent6 ~]# id alice
uid=500(alice) gid=500(alice) groups=500(alice)
หากพิมพ์คำสั่ง id เฉยๆ จะเป็นการดูข้อมูลของตัวเอง เช่นถ้า root พิมพ์คำสั่ง id ไม่ได้ระบุชื่อผู้ใช้ ผลลัพธ์จะแสดงข้อมูลของ root
[root@cent6 ~]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

เปลี่ยนรหัสผ่านผู้ใช้งาน (PASSWD)

ใช้คำสั่ง passwd ตามด้วยชื่อผู้ใช้งาน เพื่อเปลี่ยนรหัสผ่านของผู้ใช้งาน พิมพ์ password สองครั้งให้เหมือนกัน หน้าจอจะไม่แสดงรหัสผ่านที่พิมพ์ลงไป
[root@cent6 ~]# passwd alice
Changing password for user alice.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
ระวังการใช้คำสั่ง passwd ด้วย root เพราะถ้าลืมพิมพ์ชื่อผู้ใช้งานตามหลังคำสั่ง passwd จะเป็นการเปลี่ยนรหัสผ่านของตัวเอง เช่นถ้า root พิมพ์ ก็จะเป็นการเปลี่ยนรหัสผ่านของ root เอง
[root@cent6 ~]# passwd
Changing password for user root.
New password:
สังเกตชื่อ user ที่แสดงขึ้นมาหลังประโยค Changing password for user
หากต้องการยกเลิกการรันคำสั่ง passwd (และหลายๆ คำสั่งบนลีนุกซ์) ให้กดปุ่ม [Ctrl]+[C] จะเป็นการยกเลิก และออกจากคำสั่งได้
[root@cent6 ~]# passwd
Changing password for user root.
New password: [Ctrl]+[C]
[root@cent6 ~]#
คำสั่ง passwd จะมีการตรวจสอบความยากง่าย (ต่อการเดา) ของรหัสผ่านที่จะเปลี่ยน คือถ้าสามารถเดาง่ายเกินไป หน้าจอจะแสดงคำเตือนว่า BAD PASSWORD พร้อมคำอธิบายประกอบ เช่นสั้นเกินไป ง่ายต่อการเดา หรือเป็นคำที่อยู่ใน dictionary
เพื่อความปลอดภัยของระบบ แนะนำให้ตั้งรหัสผ่านที่ยากต่อการเดา แต่ให้ผู้ใช้งานเองจำได้ด้วย
[root@cent6 ~]# passwd alice
Changing password for user alice.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
ถ้ายังยืนยันจะใช้ root ก็สามารถเปลี่ยนรหัสผ่านให้ได้ (ไม่แนะนำ)
ผู้ใช้งานแต่ละคนสามารถเปลี่ยนรหัสผ่านของตัวเองได้ โดยใช้คำสั่ง passwd
ข้อแตกต่างหากรันคำสั่ง passwd ด้วยตัวผู้ใช้งานเองคือ
  • ต้องใส่รหัสผ่านที่ใช้งานอยู่ (current) ให้ถูกต้อง
  • จะไม่ยอมให้ผู้ใช้งานเอง ตั้งรหัสผ่านง่ายเกินไป
ตัวอย่างการใส่รหัสผ่านที่ใช้งานอยู่ไม่ถูกต้อง
[alice@cent6 ~]$ passwd
Changing password for user alice.
Changing password for alice.
(current) UNIX password:
passwd: Authentication token manipulation error
ตัวอย่างการตั้งรหัสผ่านง่ายเกินไป คำสั่ง passwd จะไม่ยอมเปลี่ยนให้
[alice@cent6 ~]$ passwd
Changing password for user alice.
Changing password for alice.
(current) UNIX password:
New password:
BAD PASSWORD: it is too short
New password:
BAD PASSWORD: it is based on your username
New password:
BAD PASSWORD: it is based on a dictionary word
passwd: Have exhausted maximum number of retries for service
[alice@cent6 ~]$
 เปลี่ยนเป็น ROOT ด้วยคำสั่ง SU
ตัวอย่างการล็อกอินด้วยผู้ใช้งานธรรมดา สังเกต พร้อมพต์จะเป็นเครื่องหมาย $
login as: alice
alice@192.168.5.62's password:
[alice@cent6 ~]$
ใช้คำสั่ง su เมื่อต้องการเปลี่ยนจากผู้ใช้งานธรรมดา ให้เป็น root ใส่ password ของ root ให้ถูกต้อง
สังเกต พร้อมพต์ที่เปลี่ยนไปจากเครื่องหมาย $ เป็น #
[alice@cent6 ~]$ su -
Password:
[root@cent6 ~]#
ใช้คำสั่ง exit เมื่อต้องการออกจาก root เปลี่ยนเป็นผู้ใช้ธรรมดา
[root@cent6 alice]# exit
exit
[alice@cent6 ~]$
การใช้คำสั่ง su เพื่อเปลี่ยนเป็น root แนะนำให้พิมพ์เว้นวรรคแล้วตามด้วยเครื่องหมายลบ “-” เพื่อเปลี่ยนเป็น root แบบสมบูรณ์แบบ คือให้อ่านค่าคอนฟิกของ root  ด้วย
ตัวอย่างที่เห็นได้ชัดคือค่าคอนฟิก PATH ระหว่างผู้ใช้ธรรมดา กับ root จะแตกต่างกัน หากเปรียบเทียบการใช้คำสั่ง su แล้วตามด้วยเครื่องหมายลบ
[alice@cent6 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/alice/bin
คำสั่ง su แบบไม่มีเครื่องหมายลบ ตัวแปร $PATH จะมีค่าเหมือนเดิม
[alice@cent6 ~]$ su
Password:
[root@cent6 alice]# echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/alice/bin
คำสั่ง su ตามด้วยเครื่องหมาย ‘-‘ ตัวแปร $PATH จะเปลี่ยนไปตามคอนฟิกของ root
[alice@cent6 ~]$ su -
Password:
[root@cent6 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
 การลบผู้ใช้งาน (USERDEL)
ใช้คำสั่ง userdel ตามด้วยชื่อผู้ใช้งานที่ต้องการลบออกจากเครื่องลีนุกซ์
โดยดีฟอลต์ คำสั่ง userdel จะลบชื่อผู้ใช้ออกจากระบบ แต่ไฟล์ที่อยู่ใน HOME ของผู้ใช้ยังอยู่ ทั้งนี้ก็เพื่อสำรองไฟล์ไว้ เผื่อผู้ใช้งานคนนี้จะมาขอไฟล์ภายหลังได้
ตัวอย่างการใช้คำสั่ง userdel ไม่ระบุออปชั่น
[root@cent6 ~]# id alice
uid=500(alice) gid=500(alice) groups=500(alice)

[root@cent6 ~]# userdel alice

[root@cent6 ~]# ls -ld /home/alice/
drwx------. 2 500 500 4096 Apr 21 12:44 /home/alice/

[root@cent6 ~]# id alice
id: alice: No such user
ระบุออปชั่น ‘-r’ หากต้องการลบไฟล์ที่อยู่ใน HOME ของผู้ใช้ด้วย
[root@cent6 ~]# id alice
uid=500(alice) gid=500(alice) groups=500(alice)

[root@cent6 ~]# userdel -r alice

[root@cent6 ~]# ls -ld /home/alice/
ls: cannot access /home/alice/: No such file or directory
ที่มา : https://spalinux.com/2012/04/add-modify-delete-user-on-linux
Previous
Next Post »
FB.getLoginStatus(function(response) { statusChangeCallback(response); });