Posted on April 21, 2012 by editor — No Comments ↓
เนื่องจาก root สามารถทำได้ทุกอย่างบนลีนุกซ์ ไม่ว่าจะติดตั้งโปรแกรม แก้ไขคอนฟิก หรือกระทั่งสั่งปิดเครื่อง (shutdown)
คำแนะนำอย่างหนึ่งสำหรับผู้ใช้ลีนุกซ์ ไม่ว่าจะเพิ่งเริ่มต้นหัดใช้งาน หรือใช้งานมานานแล้ว คือล็อกอินเป็นผู้ใช้ธรรมดาที่ไม่ใช่ root ให้เป็นนิสัย เพราะผู้ใช้งานธรรมดา ก็สามารถทำอะไรได้หลายอย่างแล้ว เช่นดูคอนฟิกของเครื่อง แก้ไขไฟล์เท่าที่มีสิทธิ์ และหากทำอะไรผิดพลาดไป ความเสียหายที่เกิดขึ้น ก็จะกระทบในระดับหนึ่ง เท่าที่ผู้ใช้คนนั้นจะทำได้ ไม่กระทบทั้งเครื่อง
จนกว่าจำเป็นต้องมีการแก้ไขคอนฟิกหรือทำอะไรบางอย่างกับลีนุกซ์ที่จำเป็นต้องทำด้วย root ค่อยใช้คำสั่ง su เปลี่ยนผู้ใช้ root (หรือใช้ sudo) และเมื่อหลังจากแก้ไขเสร็จสิ้นแล้ว ก็เปลี่ยนกลับมาเป็น user ธรรมดาอีกครั้ง
ในบทนี้จะอธิบายคำสั่งที่ใช้ในการ เพิ่ม แก้ไข ลบ ผู้ใช้งาน โดยต้องใช้ root เป็นคนรันคำสั่ง
การเพิ่มผู้ใช้งาน (useradd)
ใช้คำสั่ง useradd ตามด้วยชื่อ user ที่ต้องการเพิ่ม เช่นต้องการเพิ่มผู้ใช้งานชื่อ alice
คำสั่ง id ตามด้วยชื่อผู้ใช้งาน สามารถใช้ตรวจสอบข้อมูลของผู้ใช้ได้ เช่น uid, gid ของผู้ใช้
หากพิมพ์คำสั่ง id เฉยๆ จะเป็นการดูข้อมูลของตัวเอง เช่นถ้า root พิมพ์คำสั่ง id ไม่ได้ระบุชื่อผู้ใช้ ผลลัพธ์จะแสดงข้อมูลของ root
[root@cent6 ~]# useradd alice
[root@cent6 ~]# id alice uid=500(alice) gid=500(alice) groups=500(alice)
[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.
[root@cent6 ~]# passwd Changing password for user root. New password:
ระวังการใช้คำสั่ง passwd ด้วย root เพราะถ้าลืมพิมพ์ชื่อผู้ใช้งานตามหลังคำสั่ง passwd จะเป็นการเปลี่ยนรหัสผ่านของตัวเอง เช่นถ้า root พิมพ์ ก็จะเป็นการเปลี่ยนรหัสผ่านของ root เอง
สังเกตชื่อ 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 shortBAD 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
[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 ~]$
ตัวอย่างการตั้งรหัสผ่านง่ายเกินไป คำสั่ง passwd จะไม่ยอมเปลี่ยนให้
เปลี่ยนเป็น root ด้วยคำสั่ง su
ตัวอย่างการล็อกอินด้วยผู้ใช้งานธรรมดา สังเกต พร้อมพต์จะเป็นเครื่องหมาย $
login as: alice alice@192.168.5.62's password: [alice@cent6 ~]$
ใช้คำสั่ง su เมื่อต้องการเปลี่ยนจากผู้ใช้งานธรรมดา ให้เป็น root ใส่ password ของ root ให้ถูกต้อง
สังเกต พร้อมพต์ที่เปลี่ยนไปจากเครื่องหมาย $ เป็น #
[alice@cent6 ~]$ su - Password: [root@cent6 ~]#
[root@cent6 alice]# exit exit [alice@cent6 ~]$
ใช้คำสั่ง exit เมื่อต้องการออกจาก root เปลี่ยนเป็นผู้ใช้ธรรมดา
การใช้คำสั่ง 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
[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 จะมีค่าเหมือนเดิม
คำสั่ง 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
Share this:
1. Adding A User Account
- You can add a user account from the terminal with this command:
sudo useradd username
Replace username with any name of your choice.
- Create the home directory for this new user with this command:
sudo mkdir /home/username
Assign now a password for this user with this command:
sudo passwd username
Grant this user ownership and access to its home directory with these two commands:
You can also create a new user account with this command:
Grant Root Priviliges To A User Account (Optional)
If you want to give a user account root privileges so that it can execute "sudo" commands, run this command:
sudo chown username /home/username
sudo chgrp username /home/username
sudo adduser username
sudo adduser username sudo
2. Removing A User Account
Open the terminal and run these commands to delete a specific user account:
sudo userdel username
sudo rm -r /home/username/
Replace username with the user account name you want to delete.
This tip is compatible with Ubuntu 12.10/12.04/Linux Mint 13 or older.