สรุปสิ่งที่ควรรู้
- เพื่อเพิ่มผู้ใช้ใหม่: ใช้คำสั่ง useradd test ("test" คือชื่อผู้ใช้ใหม่) ใช้ sudo useradd test หากคุณไม่มีสิทธิ์ที่เหมาะสม
- เพื่อสร้างผู้ใช้พร้อมโฮมไดเรกทอรี: ใช้ sudo useradd -m test หรือ sudo useradd -m -d /test test เพื่อเปลี่ยนไดเรกทอรีเริ่มต้น
- เพื่อตั้งรหัสผ่านผู้ใช้: ใช้ passwd test และเพื่อสลับผู้ใช้ ใช้คำสั่ง su - test
บทความนี้อธิบายวิธีสร้างผู้ใช้ใน Linux โดยใช้คำสั่งบรรทัดคำสั่งและคำสั่ง "useradd" เรายังแชร์คำสั่งสำหรับสร้างผู้ใช้พร้อมโฮมไดเรกทอรี ตั้งรหัสผ่าน สลับผู้ใช้ ตั้งวันหมดอายุขณะสร้างผู้ใช้ กำหนดกลุ่มเฉพาะสำหรับผู้ใช้ใหม่ ปรับค่าเริ่มต้นการล็อกอิน สร้างผู้ใช้โดยไม่มีโฮมโฟลเดอร์ ระบุชื่อเต็มของผู้ใช้ และดูรายละเอียดเกี่ยวกับผู้ใช้เฉพาะ
วิธีสร้างผู้ใช้
คำสั่งต่อไปนี้จะเพิ่มผู้ใช้ใหม่ชื่อ test เข้าสู่ระบบของคุณ
คำสั่งพื้นฐานในการสร้างผู้ใช้ (ชื่อ test) จะเป็น:
useradd test
คุณจะต้องมีสิทธิ์เข้าถึง /etc/password เพื่อทำเช่นนี้ ดังนั้นคุณน่าจะต้องใช้ sudo กับคำสั่งข้างต้น:
sudo useradd test
สิ่งที่เกิดขึ้นเมื่อรันคำสั่งนี้ ขึ้นอยู่กับเนื้อหาของไฟล์การตั้งค่าที่อยู่ใน /etc/default/useradd
เพื่อดูเนื้อหาของ /etc/default/useradd ให้รันคำสั่งต่อไปนี้:
sudo nano /etc/default/useradd
ไฟล์การตั้งค่าจะตั้งค่า default shell ซึ่งใน Ubuntu คือ bin/sh ตัวเลือกอื่นๆ ทั้งหมดถูกคอมเมนต์ไว้

ตัวเลือกที่ถูกคอมเมนต์ไว้ช่วยให้คุณตั้งค่าโฮมโฟลเดอร์เริ่มต้น กลุ่ม จำนวนวันหลังรหัสผ่านหมดอายุก่อนที่บัญชีจะถูกปิดใช้งาน และวันหมดอายุเริ่มต้น
สิ่งสำคัญที่ควรเข้าใจจากข้อมูลข้างต้นคือ การรันคำสั่ง useradd โดยไม่มีสวิตช์อาจให้ผลลัพธ์ต่างกันบนการกระจาย (distributions) ต่างๆ และทั้งหมดเกี่ยวข้องกับการตั้งค่าในไฟล์ /etc/default/useradd
ยูทิลิตี้ sudo ไม่ได้ติดตั้งบนทุกการกระจาย หากไม่ได้ติดตั้ง ให้ล็อกอินเข้าบัญชีที่มีสิทธิ์เหมาะสมสำหรับการสร้างผู้ใช้
วิธีสร้างผู้ใช้พร้อมโฮมไดเรกทอรี
ขึ้นอยู่กับไฟล์ /etc/defaults/useradd ผู้ใช้อาจจะได้รับมอบโฮมไดเรกทอรีหรือไม่ได้ ตั้งอยู่กับไฟล์การตั้งค่า
เพื่อบังคับให้สร้างโฮมไดเรกทอรี ให้ใช้คำสั่งต่อไปนี้:
sudo useradd -m test
คำสั่งข้างต้นจะสร้างโฟลเดอร์ /home/test สำหรับผู้ใช้ test

วิธีสร้างผู้ใช้พร้อมโฮมไดเรกทอรีที่ต่างออกไป
หากคุณต้องการให้ผู้ใช้มีโฮมโฟลเดอร์ในตำแหน่งที่ต่างจากค่าเริ่มต้น ให้ใช้สวิตช์ -d
sudo useradd -m -d /test test
คำสั่งข้างต้นสร้างโฟลเดอร์ชื่อ test สำหรับผู้ใช้ test ภายใต้รูทโฟลเดอร์

ภายในสวิตช์ -m โฟลเดอร์อาจไม่ถูกสร้าง ขึ้นอยู่กับการตั้งค่าในไฟล์ /etc/login.defs
เพื่อให้ทำงานโดยไม่ต้องระบุสวิตช์ -m ให้แก้ไขไฟล์ /etc/login.defs ที่ท้ายไฟล์ ให้เพิ่มบรรทัดต่อไปนี้:
CREATE_HOME yes
วิธีเปลี่ยนรหัสผ่านผู้ใช้ใน Linux
หลังจากสร้างผู้ใช้พร้อมโฮมโฟลเดอร์แล้ว ให้เปลี่ยนรหัสผ่านของผู้ใช้
เพื่อตั้งรหัสผ่านผู้ใช้ ให้ใช้คำสั่งต่อไปนี้:
passwd test
คำสั่ง passwd ช่วยให้คุณตั้งรหัสผ่านของผู้ใช้ test คุณจะถูกพรอมพ์ให้ใส่รหัสผ่านที่ต้องการใช้

วิธีสลับผู้ใช้
ทดสอบบัญชีผู้ใช้ใหม่ของคุณโดยพิมพ์ต่อไปนี้ในหน้าต่างเทอร์มินัล:
su - test
คำสั่งข้างต้นจะสลับผู้ใช้ไปยังบัญชี test และ สมมติว่าคุณสร้างโฮมโฟลเดอร์ คุณจะถูกวางอยู่ในโฮมโฟลเดอร์ของผู้ใช้นั้น

สร้างผู้ใช้พร้อมวันหมดอายุ
หากคุณทำงานในสำนักงานและมีผู้รับเหมาใหม่ที่จะอยู่ในสำนักงานเป็นเวลาสั้น ให้ตั้งวันหมดอายุบนบัญชีผู้ใช้ของพวกเขา เช่นเดียวกัน หากมีครอบครัวมาเยี่ยม ให้สร้างบัญชีผู้ใช้สำหรับสมาชิกครอบครัวที่หมดอายุหลังจากพวกเขาเดินทางไป
เพื่อตั้งวันหมดอายุขณะสร้างผู้ใช้ ให้ใช้คำสั่งต่อไปนี้:
sudo useradd -m -e 2017-04-25 test
วันที่ต้องระบุในรูปแบบ YYYY-MM-DD โดย YYYY คือปี MM คือเลขเดือน และ DD คือเลขวัน

วิธีสร้างผู้ใช้และกำหนดให้อยู่ในกลุ่ม
เมื่อมีผู้ใช้ใหม่เข้าร่วมบริษัทของคุณ ให้กำหนดกลุ่มเฉพาะสำหรับผู้ใช้นั้น เพื่อให้พวกเขาเข้าถึงไฟล์และโฟลเดอร์เดียวกับสมาชิกทีมคนอื่นๆ ตัวอย่างเช่น John เข้าร่วมในฐานะนักบัญชี
คำสั่งต่อไปนี้จะเพิ่ม john เข้าไปในกลุ่ม accounts
sudo useradd -g accounts john

ปรับค่าเริ่มต้นการล็อกอินภายใน Linux
ไฟล์ /etc/login.defs เป็นไฟล์การตั้งค่าที่ให้พฤติกรรมเริ่มต้นสำหรับกิจกรรมการล็อกอิน มีการตั้งค่าสำคัญบางอย่างในไฟล์นี้
เพื่อเปิดไฟล์ /etc/login.defs ให้ใส่คำสั่งต่อไปนี้:
sudo nano /etc/login.defs

ไฟล์ login.defs มีการตั้งค่ามากมาย รวมถึงต่อไปนี้ ซึ่งคุณอาจต้องการเปลี่ยน:
- PASS_MAX_DAYS: นานเท่าไรก่อนรหัสผ่านจะหมดอายุ
- PASS_MIN_DAYS: รหัสผ่านสามารถเปลี่ยนได้บ่อยแค่ไหน
- PASS_WARN_AGE: จำนวนวันเตือนก่อนรหัสผ่านหมดอายุ
- LOGIN_RETRIES: จำนวนครั้งที่พยายามล็อกอินก่อนล้มเหลว
- LOGIN_TIMEOUT: นานเท่าไรก่อนล็อกอินจะหมดเวลา
- DEFAULT_HOME: ผู้ใช้สามารถล็อกอินได้หากไม่มีโฮมโฟลเดอร์
นี่คือตัวเลือกเริ่มต้นและสามารถโอเวอร์ไรด์ได้เมื่อสร้างผู้ใช้ใหม่
วิธีระบุวันหมดอายุรหัสผ่านการล็อกอิน
ตั้งวันหมดอายุรหัสผ่าน จำนวนครั้งล็อกอินผิด และ timeout ขณะสร้างผู้ใช้ ตัวอย่างต่อไปนี้แสดงวิธีสร้างผู้ใช้พร้อมการเตือนรหัสผ่าน จำนวนวันสูงสุดก่อนรหัสผ่านหมดอายุ และ login-retries ที่ตั้งไว้
sudo useradd -m -K PASS_MAX_DAYS=5 -K PASS_WARN_AGE=3 -K LOGIN_RETRIES=3 test

บังคับสร้างผู้ใช้โดยไม่มีโฮมโฟลเดอร์
หากไฟล์ login.defs มีตัวเลือก CREATE_HOME yes ตั้งไว้ เมื่อสร้างผู้ใช้ โฮมโฟลเดอร์จะถูกสร้างโดยอัตโนมัติ
เพื่อสร้างผู้ใช้โดยไม่มีโฮมโฟลเดอร์ ไม่สนใจการตั้งค่า ให้ใช้คำสั่งต่อไปนี้:
sudo useradd -M test

อาจสับสนได้ว่า -m ย่อมาจาก create home และ -M ย่อมาจาก do not create home
ระบุชื่อเต็มของผู้ใช้
כחלק ממדיניות יצירת המשתמשים שלך, אתה יכול לבחור להשתמש באות ראשונה ולאחר מכן שם משפחה. למשל, שם המשתמש עבור John Smith יהיה jsmith. כשאתה מחפש פרטים על משתמש, ייתכן שלא תוכל להבחין בין John Smith ל-Jenny Smith.
เพิ่มคอมเมนต์เมื่อคุณสร้างบัญชี เพื่อให้ง่ายต่อการค้นหาชื่อจริงของผู้ใช้ ให้รันคำสั่งต่อไปนี้เพื่อเพิ่มคอมเมนต์:
sudo useradd -m smithj -c "John Smith"

วิเคราะห์ไฟล์ /etc/passwd
เมื่อคุณสร้างผู้ใช้ รายละเอียดของผู้ใช้นั้นจะถูกเพิ่มเข้าไปในไฟล์ /etc/passwd เพื่อดูรายละเอียดเกี่ยวกับผู้ใช้เฉพาะ ให้ใช้คำสั่ง grep ดังนี้:
grep smithj /etc/passwd
คำสั่งข้างต้นจะคืนรายละเอียดเกี่ยวกับผู้ใช้ทั้งหมดที่มีคำว่า john เป็นส่วนหนึ่งของชื่อผู้ใช้

ไฟล์ /etc/passwd มีรายการฟิลด์ที่คั่นด้วยโคลอนเกี่ยวกับแต่ละผู้ใช้ ฟิลด์มีดังนี้:
- Username (ชื่อผู้ใช้)
- Encrypted password (รหัสผ่านเข้ารหัส - จะแสดงเป็น x เสมอ)
- User ID (UID)
- User's group ID (GID)
- Full name of the user (ชื่อเต็มของผู้ใช้)
- User's home directory (โฮมไดเรกทอรีของผู้ใช้)
- Login shell (เชลล์ล็อกอิน)
แม้หลายการกระจาย Linux เดสก์ท็อปจะมีเครื่องมือกราฟิกสำหรับสร้างผู้ใช้ แต่เป็นแนวทางที่ดีที่จะเรียนรู้วิธีทำจากบรรทัดคำสั่ง เพื่อให้คุณสามารถนำทักษะไปใช้จากการกระจายหนึ่งไปอีกการกระจายหนึ่งโดยไม่ต้องเรียนรู้อินเตอร์เฟซผู้ใช้ใหม่