ค้นหาเว็บไซต์

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