15 คำสั่ง Useradd ที่มีประโยชน์พร้อมตัวอย่างใน Linux
เราทุกคนต่างทราบดีถึงคำสั่งยอดนิยมที่เรียกว่า 'useradd' หรือ 'adduser' ใน Linux มีหลายครั้งที่ผู้ดูแลระบบ Linux ถูกขอให้สร้างบัญชีผู้ใช้บน Linux ที่มีคุณสมบัติ ข้อจำกัด หรือความคิดเห็นเฉพาะ
ใน Linux คำสั่ง 'useradd' เป็นโปรแกรมอรรถประโยชน์ระดับต่ำที่ใช้สำหรับการเพิ่มหรือสร้างบัญชีผู้ใช้ใน Linux และระบบปฏิบัติการที่คล้ายกับ Unix อื่นๆ คำสั่ง 'adduser' มีความคล้ายคลึงกับคำสั่ง 'useradd' มาก เนื่องจากเป็นเพียงลิงก์สัญลักษณ์ไปยังคำสั่งดังกล่าว
ใน Linux บางรุ่น คำสั่ง 'useradd' อาจมีเวอร์ชันแตกต่างออกไปเล็กน้อย ฉันขอแนะนำให้อ่านเอกสารของคุณก่อนที่จะใช้คำแนะนำของเราเพื่อสร้างบัญชีผู้ใช้ใหม่ใน Linux
เมื่อเรารันคำสั่ง 'useradd' ในเทอร์มินัล Linux คำสั่งนั้นจะทำหน้าที่หลักดังต่อไปนี้:
- แก้ไข /etc/passwd, /etc/shadow, /etc/group, และ /etc/gshadow ไฟล์สำหรับบัญชีผู้ใช้ที่สร้างขึ้นใหม่
- สร้างและเติมโฮมไดเร็กทอรีสำหรับผู้ใช้ใหม่
- ตั้งค่าการอนุญาตและความเป็นเจ้าของให้กับโฮมไดเร็กตอรี่
Useradd ไวยากรณ์คำสั่ง
ไวยากรณ์พื้นฐานของคำสั่ง 'useradd' คือ:
useradd [options] username
ในบทความนี้ เราจะสาธิตคำสั่ง 'useradd' ที่ใช้บ่อยที่สุด 15 คำสั่งพร้อมตัวอย่างที่เป็นประโยชน์ใน Linux
1. วิธีเพิ่มผู้ใช้ใหม่ใน Linux
หากต้องการเพิ่มหรือสร้างผู้ใช้ใหม่ คุณต้องใช้คำสั่ง 'useradd' หรือ 'adduser' ตามด้วย 'ชื่อผู้ใช้' 'ชื่อผู้ใช้' คือชื่อเข้าสู่ระบบที่ผู้ใช้ใช้ในการเข้าสู่ระบบ
สามารถเพิ่มผู้ใช้ได้เพียงคนเดียวเท่านั้น และชื่อผู้ใช้จะต้องไม่ซ้ำกัน และไม่มีอยู่ในระบบ
ตัวอย่างเช่น หากต้องการเพิ่มผู้ใช้ใหม่ชื่อ 'tecmint' ให้ใช้คำสั่งต่อไปนี้:
useradd tecmint
เมื่อเราเพิ่มผู้ใช้ใหม่ใน Linux ด้วยคำสั่ง 'useradd' ผู้ใช้จะถูกสร้างขึ้นในสถานะล็อค เพื่อปลดล็อคบัญชีผู้ใช้นั้น เราจำเป็นต้องตั้งรหัสผ่านสำหรับบัญชีนั้นโดยใช้คำสั่ง 'passwd'
passwd tecmint
Changing password for user tecmint.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
เมื่อสร้างผู้ใช้ใหม่แล้ว รายการจะถูกเพิ่มลงในไฟล์ '/etc/passwd' โดยอัตโนมัติ ไฟล์นี้ใช้เพื่อจัดเก็บข้อมูลของผู้ใช้และรายการควรจะเป็น
tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash
รายการข้างต้นประกอบด้วยชุดของฟิลด์ที่คั่นด้วยเครื่องหมายโคลอนเจ็ดฟิลด์ แต่ละฟิลด์จะมีความหมายของตัวเอง
มาดูกันว่าฟิลด์เหล่านี้คืออะไร:
- ชื่อผู้ใช้ – ชื่อล็อกอินของผู้ใช้ใช้เพื่อเข้าสู่ระบบ ควรมีความยาวระหว่าง 1 ถึง 32 อักขระ
- รหัสผ่าน – รหัสผ่านผู้ใช้ (หรืออักขระ
'x'
) จะถูกจัดเก็บไว้ในไฟล์ '/etc/shadow' ในรูปแบบที่เข้ารหัส - รหัสผู้ใช้ (UID) – ผู้ใช้ทุกคนต้องมีรหัสผู้ใช้ (UID) ซึ่งย่อมาจาก หมายเลขประจำตัวผู้ใช้ ตามค่าเริ่มต้น UID 0 จะถูกสงวนไว้สำหรับผู้ใช้รูท และ UID ตั้งแต่ 1 ถึง 99 จะถูกสงวนไว้สำหรับบัญชีที่กำหนดไว้ล่วงหน้าอื่นๆ นอกจากนี้ UID ตั้งแต่ 100 ถึง 999 จะถูกสงวนไว้สำหรับบัญชีระบบและกลุ่ม
- รหัสกลุ่ม (GID) – รหัสกลุ่มหลัก (GID) ซึ่งย่อมาจาก หมายเลขประจำตัวกลุ่ม จะถูกจัดเก็บไว้ในส่วน ' /etc/group' ไฟล์
- ข้อมูลผู้ใช้ – ฟิลด์นี้เป็นทางเลือกและช่วยให้คุณสามารถกำหนดข้อมูลเพิ่มเติมเกี่ยวกับผู้ใช้ เช่น ชื่อเต็มของผู้ใช้ ข้อมูลนี้สามารถกรอกได้โดยใช้คำสั่งนิ้ว
- Home Directory – ตำแหน่งที่แน่นอนของโฮมไดเร็กตอรี่ของผู้ใช้
- Shell – ตำแหน่งที่แน่นอนของเชลล์ของผู้ใช้ เช่น /bin/bash
2. วิธีสร้างผู้ใช้ด้วยโฮมไดเร็กตอรี่อื่น
ตามค่าเริ่มต้น คำสั่ง 'useradd' จะสร้างโฮมไดเร็กทอรีของผู้ใช้ภายใต้ไดเร็กทอรี '/home' ด้วยชื่อผู้ใช้ ตัวอย่างเช่น ตามที่เห็นข้างต้น โฮมไดเร็กทอรีเริ่มต้นสำหรับผู้ใช้ 'tecmint' คือ '/home/tecmint'
อย่างไรก็ตาม ลักษณะการทำงานนี้สามารถเปลี่ยนแปลงได้โดยใช้ตัวเลือก '-d'
พร้อมกับตำแหน่งของโฮมไดเร็กตอรี่ใหม่ (เช่น '/data/projects') ตัวอย่างเช่น คำสั่งต่อไปนี้จะสร้างผู้ใช้ 'anusha' โดยตั้งค่าโฮมไดเร็กตอรี่เป็น '/data/projects'
useradd -d /data/projects anusha
passwd anusha
คุณสามารถดูโฮมไดเร็กตอรี่ของผู้ใช้และข้อมูลอื่นๆ ที่เกี่ยวข้องกับผู้ใช้ เช่น ID ผู้ใช้, ID กลุ่ม, เชลล์ และความคิดเห็นโดยใช้คำสั่ง cat ต่อไปนี้
cat /etc/passwd | grep anusha
anusha:x:1001:1001::/data/projects:/bin/bash
3. วิธีสร้างผู้ใช้ด้วย ID ผู้ใช้เฉพาะ
ใน Linux ผู้ใช้ทุกคนจะมี UID (Unique Identification Number) ของตัวเอง ตามค่าเริ่มต้น เมื่อเราสร้างบัญชีผู้ใช้ใหม่ใน Linux ระบบจะกำหนด ID ผู้ใช้ 500, 501, 502 และอื่นๆ
อย่างไรก็ตาม เราสามารถสร้างผู้ใช้ที่มี ID ผู้ใช้ที่กำหนดเองได้โดยใช้ตัวเลือก '-u'
ตัวอย่างเช่น คำสั่งต่อไปนี้จะสร้างผู้ใช้ 'navin' พร้อมด้วย ID ผู้ใช้ที่กำหนดเอง '1002'
useradd -u 1002 navin
ตอนนี้ มาตรวจสอบว่าผู้ใช้สร้างด้วยรหัสผู้ใช้ที่กำหนด (1002) โดยใช้คำสั่งต่อไปนี้
cat /etc/passwd | grep navin
navin:x:1002:1002::/home/navin:/bin/bash
หมายเหตุ: ตรวจสอบให้แน่ใจว่าค่าของ ID ผู้ใช้จะต้องไม่ซ้ำกันจากผู้ใช้อื่น ๆ ที่สร้างไว้แล้วบนระบบ
4. วิธีสร้างผู้ใช้ด้วย ID กลุ่มเฉพาะ
ในทำนองเดียวกัน ผู้ใช้ทุกคนมี GID (ตัวระบุกลุ่ม ของตัวเอง) เราสามารถสร้างผู้ใช้ที่มี ID กลุ่มเฉพาะได้โดยใช้ตัวเลือก '-g'
ในตัวอย่างนี้ เราจะเพิ่มผู้ใช้ 'tarunika' พร้อมด้วย UID และ GID ที่เฉพาะเจาะจงพร้อมกันด้วยความช่วยเหลือของ '- คุณ'
และตัวเลือก '-g'
useradd -u 1005 -g tecmint tarunika
ตอนนี้ ให้ตรวจสอบ ID ผู้ใช้และ ID กลุ่มที่กำหนดในไฟล์ '/etc/passwd'
cat /etc/passwd | grep tarunika
tarunika:x:1005:1000::/home/tarunika:/bin/bash
หากต้องการตรวจสอบ GID ของผู้ใช้ ให้ใช้คำสั่ง id:
id -gn tarunika
5. วิธีเพิ่มผู้ใช้ลงในหลายกลุ่ม
ตัวเลือก '-G'
ใช้เพื่อเพิ่มผู้ใช้ในกลุ่มเพิ่มเติม ชื่อกลุ่มแต่ละชื่อคั่นด้วยเครื่องหมายจุลภาค โดยไม่มีช่องว่างแทรกแซง
ในตัวอย่างนี้ เรากำลังเพิ่มผู้ใช้ 'tecmint' ลงในหลายกลุ่ม เช่น ผู้ดูแลระบบ, webadmin และ นักพัฒนา แข็งแกร่ง>.
groupadd admins
groupadd webadmin
groupadd developers
usermod -a -G admins,webadmin,developers tecmint
useradd -G admins,webadmin,developers paddy
จากนั้น ตรวจสอบว่ามีการกำหนดหลายกลุ่มให้กับผู้ใช้ด้วยคำสั่ง id
id tecmint
uid=1000(tecmint) gid=1000(tecmint)
groups=1000(tecmint),1007(admins),1008(webadmin),1009(developers)
context=root:system_r:unconfined_t:SystemLow-SystemHigh
6. วิธีเพิ่มผู้ใช้ที่ไม่มีโฮมไดเร็กตอรี่
ในบางสถานการณ์ ที่เราไม่ต้องการกำหนดโฮมไดเร็กทอรีให้กับผู้ใช้เนื่องจากเหตุผลด้านความปลอดภัย โฮมไดเร็กตอรี่ของผู้ใช้จะเป็นรูทเมื่อเข้าสู่ระบบระบบที่เพิ่งรีสตาร์ท เมื่อผู้ใช้ดังกล่าวใช้คำสั่ง 'su' ไดเร็กทอรีการเข้าสู่ระบบของพวกเขาจะเป็นโฮมไดเร็กทอรีของผู้ใช้คนก่อน
หากต้องการสร้างผู้ใช้ที่ไม่มีโฮมไดเร็กทอรี จะใช้ตัวเลือก '-M'
ตัวอย่างเช่น คำสั่งต่อไปนี้จะสร้างผู้ใช้ 'shilpi' โดยไม่มีโฮมไดเร็กตอรี่
useradd -M shilpi
ตอนนี้มาตรวจสอบว่าผู้ใช้ถูกสร้างขึ้นโดยไม่มีโฮมไดเร็กตอรี่โดยใช้คำสั่ง ls
ls -l /home/shilpi
ls: cannot access /home/shilpi: No such file or directory
7. วิธีสร้างผู้ใช้ที่มีวันหมดอายุใน Linux
ตามค่าเริ่มต้น เมื่อเราเพิ่มผู้ใช้ด้วยคำสั่ง 'useradd' บัญชีผู้ใช้จะไม่มีวันหมดอายุ ซึ่งหมายความว่าวันหมดอายุจะถูกตั้งเป็น 0 (ซึ่งหมายความว่าไม่มีวันหมดอายุ)
อย่างไรก็ตาม เราสามารถกำหนดวันหมดอายุได้โดยใช้ตัวเลือก '-e'
ซึ่งควรอยู่ในรูปแบบ YYYY-MM-DD สิ่งนี้มีประโยชน์สำหรับการสร้างบัญชีชั่วคราวในช่วงเวลาที่กำหนด
ในตัวอย่างนี้ เราสร้างผู้ใช้ 'aparna' โดยมีวันหมดอายุของบัญชี ซึ่งก็คือ 27 สิงหาคม 2021 ในรูปแบบ ปปปป-ดด-วว รูปแบบ
useradd -e 2021-08-27 aparna
ถัดไป ตรวจสอบข้อมูลอายุของบัญชีและรหัสผ่านโดยใช้คำสั่ง 'chage' สำหรับผู้ใช้ 'aparna' หลังจากตั้งค่าวันหมดอายุของบัญชี
chage -l aparna
Last password change : Jun 25, 2021
Password expires : never
Password inactive : never
Account expires : Aug 27, 2021
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
8. วิธีสร้างผู้ใช้ด้วยรหัสผ่านวันหมดอายุ
อาร์กิวเมนต์ '-f'
ใช้เพื่อกำหนดจำนวนวันหลังจากที่รหัสผ่านหมดอายุ ค่า 0 จะปิดใช้งานบัญชีผู้ใช้ทันทีที่รหัสผ่านหมดอายุ ตามค่าเริ่มต้น ค่าการหมดอายุของรหัสผ่านจะถูกตั้งค่าเป็น -1
ซึ่งหมายความว่าไม่มีวันหมดอายุ
ในตัวอย่างนี้ เราจะกำหนดวันหมดอายุของรหัสผ่านบัญชีซึ่งก็คือ 45 วัน สำหรับผู้ใช้ 'mansi' โดยใช้ '-e'
และตัวเลือก '-f'
useradd -e 2014-04-27 -f 45 mansi
9. วิธีเพิ่มผู้ใช้พร้อมความคิดเห็นใน Linux
ตัวเลือก '-c'
ช่วยให้คุณสามารถเพิ่มความคิดเห็นที่กำหนดเอง เช่น ชื่อเต็มของผู้ใช้ หมายเลขโทรศัพท์ ฯลฯ ลงในไฟล์ '/etc/passwd' สามารถเพิ่มความคิดเห็นเป็นบรรทัดเดียวโดยไม่ต้องเว้นวรรค
ตัวอย่างเช่น คำสั่งต่อไปนี้จะเพิ่มผู้ใช้ 'mansi' และแทรกชื่อเต็มของผู้ใช้ Manis Khurana ลงในช่องแสดงความคิดเห็น
useradd -c "Manis Khurana" mansi
คุณสามารถดูความคิดเห็นที่แทรกไว้ในไฟล์ '/etc/passwd' ในส่วนความคิดเห็นได้โดยใช้คำสั่ง tail
tail -1 /etc/passwd
mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh
10. วิธีสร้างเชลล์เข้าสู่ระบบของผู้ใช้ใน Linux
บางครั้งเราเพิ่มผู้ใช้ที่ไม่เกี่ยวข้องกับเชลล์การเข้าสู่ระบบ หรือบางครั้งเราจำเป็นต้องกำหนดเชลล์อื่นให้กับผู้ใช้ของเรา เราสามารถกำหนดเชลล์การเข้าสู่ระบบที่แตกต่างกันให้กับผู้ใช้แต่ละคนด้วยตัวเลือก '-s'
ในตัวอย่างนี้ จะเพิ่มผู้ใช้ 'tecmint' โดยไม่มีเชลล์การเข้าสู่ระบบ เช่น เชลล์ '/sbin/nologin'
useradd -s /sbin/nologin tecmint
คุณสามารถตรวจสอบเชลล์ที่กำหนดให้กับผู้ใช้ได้ในไฟล์ '/etc/passwd'
tail -1 /etc/passwd
tecmint:x:1011:1014::/home/tecmint:/sbin/nologin
11. วิธีสร้างผู้ใช้ด้วยหน้าแรก เชลล์ และความคิดเห็นที่ระบุ
คำสั่งต่อไปนี้จะสร้างผู้ใช้ 'ravi' พร้อมด้วยโฮมไดเร็กทอรี '/var/www/tecmint' ซึ่งเป็นเชลล์เริ่มต้นของ /bin/bash และข้อมูลเพิ่มเติมเกี่ยวกับผู้ใช้
useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi
ในคำสั่งข้างต้น ตัวเลือก '-m'
และ '-d'
จะสร้างผู้ใช้ที่มีโฮมไดเร็กตอรี่ที่ระบุ และ '-s'
ตัวเลือกตั้งค่าเชลล์เริ่มต้นของผู้ใช้เป็น /bin/bash ตัวเลือก '-c'
จะเพิ่มข้อมูลเพิ่มเติมเกี่ยวกับผู้ใช้ และอาร์กิวเมนต์ '-U'
จะสร้าง/เพิ่มกลุ่มที่มีชื่อเดียวกันกับผู้ใช้
12. วิธีสร้างผู้ใช้ด้วย Home, Shell, Comment, UID/GID ที่กำหนด
คำสั่งนี้คล้ายกับคำสั่งด้านบนมาก แต่ที่นี่เรากำหนดเชลล์เป็น '/bin/zsh' และตั้งค่า UID และ GID แบบกำหนดเอง สำหรับผู้ใช้ 'tarunika' ตัวเลือก '-u'
กำหนด UID ของผู้ใช้ใหม่ (เช่น 100) และตัวเลือก '-g'
กำหนด GID (เช่น , 1,000)
useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika
13. วิธีสร้างผู้ใช้ด้วย Home, No Shell, Comment และ UID
คำสั่งต่อไปนี้คล้ายกับสองคำสั่งข้างต้นมาก ข้อแตกต่างเพียงอย่างเดียวคือ ที่นี่ เราปิดใช้งานเชลล์การเข้าสู่ระบบสำหรับผู้ใช้ชื่อ 'avishek' ด้วย ID ผู้ใช้ที่กำหนดเอง (เช่น 1019)
ตัวเลือก '-s'
ตั้งค่าเชลล์เริ่มต้นเป็น /bin/bash แต่ในกรณีนี้ เราตั้งค่าเชลล์การเข้าสู่ระบบเป็น '/usr/sbin/ โนโลจิน' นั่นหมายความว่าผู้ใช้ 'avishek' จะไม่สามารถเข้าสู่ระบบได้
useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek
14. วิธีสร้างผู้ใช้ด้วย Home, Shell, Skeleton และ UID ที่ระบุ
การเปลี่ยนแปลงเพียงอย่างเดียวในคำสั่งนี้คือเราใช้ตัวเลือก '-k'
เพื่อตั้งค่าไดเรกทอรีโครงกระดูกที่กำหนดเองเป็น /etc/custom.skell แทนที่จะเป็นค่าเริ่มต้น < แข็งแกร่ง>/etc/skel. นอกจากนี้เรายังใช้ตัวเลือก '-s'
เพื่อกำหนดเชลล์อื่น /bin/tcsh สำหรับผู้ใช้ 'navin'
useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of TecMint" -u 1027 navin
15. วิธีสร้างผู้ใช้ที่ไม่มี Home, Shell หรือ Group พร้อมความคิดเห็น
คำสั่งต่อไปนี้แตกต่างจากคำสั่งอื่นๆ ที่อธิบายไว้ข้างต้นอย่างมาก ที่นี่ เราใช้ตัวเลือก '-M'
เพื่อสร้างผู้ใช้ที่ไม่มีโฮมไดเร็กทอรีของผู้ใช้ และใช้ตัวเลือก '-N'
เพื่อสั่งให้ระบบสร้างเท่านั้น ชื่อผู้ใช้ (ไม่มีกลุ่ม) ตัวเลือก '-r'
ใช้สำหรับการสร้างผู้ใช้ระบบ
useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton
สำหรับข้อมูลเพิ่มเติมและตัวเลือกเกี่ยวกับ 'useradd' ให้เรียกใช้คำสั่ง 'useradd' ในเทอร์มินัลเพื่อดูตัวเลือกที่ใช้ได้
useradd
หากคุณต้องการแก้ไขคุณลักษณะของบัญชีผู้ใช้ เช่น การแก้ไขชื่อผู้ใช้, ID ผู้ใช้ (UID), โฮมไดเร็กตอรี่, เชลล์ และอื่นๆ ให้ใช้คำสั่ง usermod