คำแนะนำฉบับสมบูรณ์เกี่ยวกับการใช้คำสั่ง 'usermod' - 15 ตัวอย่างการใช้งานจริงพร้อมภาพหน้าจอ
ในการแจกแจง Unix/Linux คำสั่ง 'usermod' ใช้เพื่อแก้ไขหรือเปลี่ยนแปลงคุณลักษณะใด ๆ ของบัญชีผู้ใช้ที่สร้างไว้แล้วผ่านทางบรรทัดคำสั่ง คำสั่ง 'usermod' นั้นคล้ายคลึงกับ 'useradd' หรือ 'adduser' แต่เป็นการเข้าสู่ระบบที่มอบให้กับผู้ใช้ที่มีอยู่
คำสั่ง 'useradd' หรือ 'adduser' ใช้สำหรับการสร้างบัญชีผู้ใช้ในระบบ Linux หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างผู้ใช้ระบบ โปรดอ่านคู่มือฉบับสมบูรณ์ของเราที่:
- คู่มือฉบับสมบูรณ์เกี่ยวกับคำสั่ง “useradd” ใน Linux
หลังจากสร้างบัญชีผู้ใช้แล้ว ในบางสถานการณ์ที่เราจำเป็นต้องเปลี่ยนคุณลักษณะของผู้ใช้ที่มีอยู่ เช่น เปลี่ยนโฮมไดเร็กตอรี่ของผู้ใช้ ชื่อล็อกอิน เชลล์ล็อกอิน วันหมดอายุของรหัสผ่าน ฯลฯ ซึ่งในกรณีดังกล่าวจะใช้คำสั่ง 'usermod'
เมื่อเรารันคำสั่ง 'usermod' ในเทอร์มินัล ไฟล์ต่อไปนี้จะถูกนำมาใช้และได้รับผลกระทบ
- /etc/passwd – ข้อมูลบัญชีผู้ใช้
- /etc/shadow – รักษาข้อมูลบัญชีให้ปลอดภัย
- /etc/group – ข้อมูลบัญชีกลุ่ม
- /etc/gshadow – รักษาความปลอดภัยข้อมูลบัญชีกลุ่ม
- /etc/login.defs – การกำหนดค่าชุดรหัสผ่าน Shadow..
ไวยากรณ์พื้นฐานของคำสั่งคือ:
usermod [options] username
ความต้องการ
- เราต้องมีบัญชีผู้ใช้ที่มีอยู่เพื่อรันคำสั่ง usermod
- อนุญาตให้เฉพาะ superuser (root) เท่านั้นที่ได้รับอนุญาตให้รันคำสั่ง usermod
- คำสั่ง usermod สามารถดำเนินการได้บนการกระจาย Linux ใด ๆ
- ต้องมีความรู้พื้นฐานเกี่ยวกับคำสั่ง usermod พร้อมตัวเลือกต่างๆ
ตัวเลือกของ Usermod
คำสั่ง 'usermod' นั้นใช้งานง่ายพร้อมตัวเลือกมากมายในการเปลี่ยนแปลงผู้ใช้ที่มีอยู่ ให้เราดูวิธีใช้คำสั่ง usermod โดยการแก้ไขผู้ใช้ที่มีอยู่ในกล่อง Linux ด้วยความช่วยเหลือของตัวเลือกต่อไปนี้
- -c=เราสามารถเพิ่มช่องความคิดเห็นสำหรับบัญชีผู้ใช้ได้
- -d=เพื่อแก้ไขไดเร็กทอรีสำหรับบัญชีผู้ใช้ที่มีอยู่
- -e=การใช้ตัวเลือกนี้ทำให้เราสามารถทำให้บัญชีหมดอายุในช่วงเวลาที่กำหนดได้
- -g=เปลี่ยนกลุ่มหลักสำหรับผู้ใช้
- -G=เพื่อเพิ่มกลุ่มเสริม
- -a=เพื่อเพิ่มใครก็ตามในกลุ่มในกลุ่มรอง
- -l=เพื่อเปลี่ยนชื่อล็อกอินจาก tecmint เป็น tecmint_admin
- -L=เพื่อล็อคบัญชีผู้ใช้ นี่จะล็อครหัสผ่านดังนั้นเราจึงไม่สามารถใช้บัญชีได้
- -m=ย้ายเนื้อหาของโฮมไดเร็กตอรี่จากโฮมไดเร็กทอรีที่มีอยู่ไปยังไดเร็กทอรีใหม่
- -p=การใช้รหัสผ่านที่ไม่ได้เข้ารหัสสำหรับรหัสผ่านใหม่ (ไม่ปลอดภัย).
- -s=สร้างเชลล์ที่ระบุสำหรับบัญชีใหม่
- -u=ใช้เพื่อกำหนด UID สำหรับบัญชีผู้ใช้ระหว่าง 0 ถึง 999
- -U=เพื่อปลดล็อคบัญชีผู้ใช้ การดำเนินการนี้จะลบการล็อครหัสผ่านและอนุญาตให้เราใช้บัญชีผู้ใช้ได้
ในบทความนี้ เราจะดู 'คำสั่ง usermod 15 คำสั่ง' พร้อมตัวอย่างการใช้งานจริงและการใช้งานใน Linux ซึ่งจะช่วยให้คุณเรียนรู้และพัฒนาทักษะบรรทัดคำสั่งโดยใช้ตัวเลือกเหล่านี้
1. การเพิ่มข้อมูลให้กับบัญชีผู้ใช้
ตัวเลือก '-c' ใช้เพื่อแสดงความคิดเห็นสั้น ๆ (ข้อมูล) เกี่ยวกับบัญชีผู้ใช้ ตัวอย่างเช่น ลองเพิ่มข้อมูลเกี่ยวกับผู้ใช้ 'tecmint' โดยใช้คำสั่งต่อไปนี้
usermod -c "This is Tecmint" tecmint
หลังจากเพิ่มข้อมูลเกี่ยวกับผู้ใช้แล้ว คุณจะสามารถดูความคิดเห็นเดียวกันได้ในไฟล์ /etc/passwd
grep -E --color 'tecmint' /etc/passwd
tecmint:x:500:500:This is Tecmint:/home/tecmint:/bin/sh
2. เปลี่ยนโฮมไดเร็กตอรี่ของผู้ใช้
ในขั้นตอนข้างต้น เราจะเห็นว่าโฮมไดเร็กตอรี่ของเราอยู่ภายใต้ /home/tecmint/ หากเราจำเป็นต้องเปลี่ยนเป็นไดเร็กทอรีอื่น เราก็สามารถเปลี่ยนได้โดยใช้ -d ตัวเลือกด้วยคำสั่ง usermod
ตัวอย่างเช่น ฉันต้องการเปลี่ยนโฮมไดเร็กตอรี่ของเราเป็น /var/www/ แต่ก่อนที่จะเปลี่ยน เรามาตรวจสอบโฮมไดเร็กตอรี่ปัจจุบันของผู้ใช้โดยใช้คำสั่งต่อไปนี้
grep -E --color '/home/tecmint' /etc/passwd
tecmint:x:500:500:This is Tecmint:/home/tecmint:/bin/sh
ตอนนี้ เปลี่ยนโฮมไดเร็กทอรีจาก /home/tecmint เป็น /var/www/ และยืนยันโฮมไดเร็กทอรีหลังจากการเปลี่ยนแปลง
usermod -d /var/www/ tecmint
grep -E --color '/var/www/' /etc/passwd
tecmint:x:500:500:This is Tecmint:/var/www:/bin/sh
3. กำหนดวันหมดอายุของบัญชีผู้ใช้
ตัวเลือก '-e' ใช้เพื่อกำหนดวันหมดอายุในบัญชีผู้ใช้ที่มีรูปแบบวันที่ ปปปป-ดด-วว ก่อนหน้านี้ ในการตั้งค่าวันหมดอายุของผู้ใช้ ขั้นแรกให้ตรวจสอบสถานะการหมดอายุของบัญชีปัจจุบันโดยใช้คำสั่ง 'chage' (เปลี่ยนข้อมูลการหมดอายุของรหัสผ่านผู้ใช้)
chage -l tecmint
Last password change : Nov 02, 2014
Password expires : never
Password inactive : never
Account expires : Dec 01, 2014
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
สถานะการหมดอายุของผู้ใช้ 'tecmint' คือ 1 ธันวาคม 2014 เรามาเปลี่ยนเป็น 1 พฤศจิกายน 2014 โดยใช้ 'usermod -e ' และยืนยันวันหมดอายุด้วยคำสั่ง 'chage'
usermod -e 2014-11-01 tecmint
chage -l tecmint
Last password change : Nov 02, 2014
Password expires : never
Password inactive : never
Account expires : Nov 01, 2014
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
4. เปลี่ยนกลุ่มหลักของผู้ใช้
ในการตั้งค่าหรือเปลี่ยนกลุ่มหลักของผู้ใช้ เราใช้ตัวเลือก '-g' พร้อมคำสั่ง usermod ก่อนที่จะเปลี่ยนกลุ่มหลักของผู้ใช้ ขั้นแรกตรวจสอบให้แน่ใจว่าได้ตรวจสอบกลุ่มปัจจุบันสำหรับผู้ใช้ tecmint_test
id tecmint_test
uid=501(tecmint_test) gid=502(tecmint_test) groups=502(tecmint_test)
ตอนนี้ ให้ตั้งค่ากลุ่ม babin เป็นกลุ่มหลักเป็นผู้ใช้ tecmint_test และยืนยันการเปลี่ยนแปลง
usermod -g babin tecmint_test
id tecmint_test
uid=501(tecmint_test) gid=502(babin) groups=502(tecmint_test)
5. การเพิ่มกลุ่มให้กับผู้ใช้ที่มีอยู่
หากคุณต้องการเพิ่มกลุ่มใหม่ที่เรียกว่า 'tecmint_test0' ให้กับผู้ใช้ 'tecmint' คุณสามารถใช้ตัวเลือก '-G' ด้วยคำสั่ง usermod ตามที่แสดงด้านล่าง
usermod -G tecmint_test0 tecmint
id tecmint
หมายเหตุ: โปรดใช้ความระมัดระวัง ในขณะที่เพิ่มกลุ่มใหม่ให้กับผู้ใช้ที่มีอยู่ด้วยตัวเลือก '-G' เพียงอย่างเดียว จะเป็นการลบกลุ่มที่มีอยู่ทั้งหมดที่ ผู้ใช้เป็นเจ้าของ ดังนั้น ให้เพิ่มตัวเลือก '-a' (ต่อท้าย) ด้วยตัวเลือก '-G' เสมอเพื่อเพิ่มหรือต่อท้ายกลุ่มใหม่
6. การเพิ่มกลุ่มเสริมและกลุ่มหลักให้กับผู้ใช้
หากคุณต้องการเพิ่มผู้ใช้ในกลุ่มเสริมกลุ่มใดกลุ่มหนึ่ง คุณสามารถใช้ตัวเลือก '-a' และ '-G' ตัวอย่างเช่น เราจะเพิ่มบัญชีผู้ใช้ tecmint_test0 กับผู้ใช้ wheel
usermod -a -G wheel tecmint_test0
id tecmint_test0
ดังนั้น ผู้ใช้ tecmint_test0 จะยังคงอยู่ในกลุ่มหลักและยังอยู่ในกลุ่มรองด้วย (วงล้อ) สิ่งนี้จะทำให้บัญชีผู้ใช้ปกติของฉันดำเนินการคำสั่งรูทสิทธิพิเศษในกล่อง Linux
eg : sudo service httpd restart
7. เปลี่ยนชื่อล็อกอินของผู้ใช้
หากต้องการเปลี่ยนชื่อล็อกอินของผู้ใช้ที่มีอยู่ เราสามารถใช้ตัวเลือก '-l' (ล็อกอินใหม่) ในตัวอย่างด้านล่าง เราเปลี่ยนชื่อล็อกอิน tecmint เป็น tecmint_admin ดังนั้นชื่อผู้ใช้ tecmint จึงถูกเปลี่ยนชื่อเป็นชื่อใหม่ tecmint_admin
usermod -l tecmint_admin tecmint
ตอนนี้ให้ตรวจสอบผู้ใช้ tecmint ซึ่งจะไม่ปรากฏเนื่องจากเราได้เปลี่ยนเป็น tecmint_admin
id tecmint
ตรวจสอบบัญชี tecmint_admin ซึ่งจะอยู่ที่นั่นด้วย UID เดียวกันและกับกลุ่มที่มีอยู่ที่เราได้เพิ่มไว้ก่อนหน้านี้
id tecmint_admin
8. ล็อคบัญชีผู้ใช้
ในการล็อคบัญชีผู้ใช้ระบบใดๆ เราสามารถใช้ตัวเลือก '-L' (ล็อค) หลังจากที่บัญชีถูกล็อคแล้ว เราไม่สามารถเข้าสู่ระบบโดยใช้รหัสผ่านได้ และคุณจะเห็น ! เพิ่มหน้ารหัสผ่านที่เข้ารหัสในไฟล์ /etc/shadow หมายความว่ารหัสผ่านถูกปิดใช้งาน
usermod -L babin
ตรวจสอบบัญชีที่ถูกล็อค
grep -E --color 'babin' cat /etc/shadow
9. ปลดล็อคบัญชีผู้ใช้
ตัวเลือก '-U' ใช้เพื่อปลดล็อกผู้ใช้ที่ถูกล็อค ซึ่งจะลบ ! ก่อนรหัสผ่านที่เข้ารหัส
grep -E --color 'babin' /etc/shadow
usermod -U babin
ตรวจสอบผู้ใช้หลังจากปลดล็อค
grep -E --color 'babin' /etc/shadow
10. ย้ายโฮมไดเร็กทอรีของผู้ใช้ไปยังตำแหน่งใหม่
สมมติว่าคุณมีบัญชีผู้ใช้เป็น 'pinky' โดยมีโฮมไดเร็กทอรี '/home/pinky' คุณต้องการย้ายไปยังตำแหน่งใหม่โดยพูดว่า '/var /พิ้งกี้'. คุณสามารถใช้ตัวเลือก '-d' และ '-m' เพื่อย้ายไฟล์ผู้ใช้ที่มีอยู่จากโฮมไดเร็กตอรี่ปัจจุบันไปยังโฮมไดเร็กตอรี่ใหม่
ตรวจสอบบัญชีและเป็นโฮมไดเร็กตอรี่ปัจจุบัน
grep -E --color 'pinky' /etc/passwd
จากนั้นแสดงรายการไฟล์ที่ผู้ใช้พิ้งกี้เป็นเจ้าของ
ls -l /home/pinky/
ตอนนี้เราต้องย้ายโฮมไดเร็กทอรีจาก /home/pinky ไปที่ /var/pinky
usermod -d /var/pinky/ -m pinky
ถัดไป ตรวจสอบการเปลี่ยนแปลงไดเรกทอรี
grep -E --color 'pinky' /etc/passwd
ตรวจสอบไฟล์ภายใต้ '/home/pinky' ที่นี่เราได้ย้ายไฟล์โดยใช้ตัวเลือก -m ดังนั้นจะไม่มีไฟล์ ไฟล์ผู้ใช้พิ้งกี้จะอยู่ภายใต้ /var/pinky
ls -l /home/pinky/
ls -l /var/pinky/
11. สร้างรหัสผ่านที่ไม่ได้เข้ารหัสสำหรับผู้ใช้
หากต้องการสร้างรหัสผ่านที่ไม่ได้เข้ารหัส เราใช้ตัวเลือก '-p' (รหัสผ่าน) เพื่อวัตถุประสงค์ในการสาธิต ฉันกำลังตั้งรหัสผ่านใหม่ว่า 'redhat' สำหรับผู้ใช้ pinky
usermod -p redhat pinky
หลังจากตั้งรหัสผ่านแล้ว ให้ตรวจสอบไฟล์เงาเพื่อดูว่าอยู่ในรูปแบบที่เข้ารหัสหรือไม่เข้ารหัส
grep -E --color 'pinky' /etc/shadow
หมายเหตุ: คุณเห็นในภาพด้านบนหรือไม่ ทุกคนมองเห็นรหัสผ่านได้ชัดเจน ดังนั้นจึงไม่แนะนำให้ใช้ตัวเลือกนี้เนื่องจากผู้ใช้ทุกคนจะมองเห็นรหัสผ่านได้
12. เปลี่ยนเชลล์ผู้ใช้
เชลล์การเข้าสู่ระบบของผู้ใช้สามารถเปลี่ยนแปลงหรือกำหนดได้ในระหว่างการสร้างผู้ใช้ด้วยคำสั่ง useradd หรือเปลี่ยนแปลงด้วยคำสั่ง 'usermod' โดยใช้ตัวเลือก '-s' ( เปลือก). ตัวอย่างเช่น ผู้ใช้ 'babin' มีเชลล์ /bin/bash เป็นค่าเริ่มต้น ตอนนี้ฉันต้องการเปลี่ยนเป็น /bin/sh .
grep -E --color 'babin' /etc/passwd
usermod -s /bin/sh babin
หลังจากเปลี่ยนเชลล์ผู้ใช้แล้ว ให้ตรวจสอบเชลล์ผู้ใช้โดยใช้คำสั่งต่อไปนี้
grep -E --color 'babin' /etc/passwd
13. เปลี่ยนรหัสผู้ใช้ (UID)
ในตัวอย่างด้านล่าง คุณจะเห็นว่าบัญชีผู้ใช้ของฉัน 'babin' มี UID เป็น 502 ตอนนี้ฉันต้องการเปลี่ยนเป็น 888 เป็น UID ของฉัน เราสามารถกำหนด UID ได้ระหว่าง 0 ถึง 999
grep -E --color 'babin' /etc/passwd
OR
id babin
ตอนนี้เรามาเปลี่ยน UID สำหรับผู้ใช้ babin โดยใช้ตัวเลือก '-u' (uid) และตรวจสอบการเปลี่ยนแปลง
usermod -u 888 babin
id babin
14. การแก้ไขบัญชีผู้ใช้ด้วยหลายตัวเลือก
ที่นี่เรามี แจ็ค ของผู้ใช้ และตอนนี้ฉันต้องการแก้ไขโฮมไดเร็กตอรี่, เชลล์, วันหมดอายุ, ป้ายกำกับ, UID และกลุ่มพร้อมกันโดยใช้คำสั่งเดียวพร้อมตัวเลือกทั้งหมดตามที่เราได้กล่าวไว้ข้างต้น
ผู้ใช้ Jack มีโฮมไดเร็กตอรี่เริ่มต้น /home/jack ตอนนี้ฉันต้องการเปลี่ยนเป็น /var/www/html และกำหนดของเขา เชลล์เป็น bash กำหนดวันหมดอายุเป็น 10 ธันวาคม 2014 เพิ่มป้ายกำกับใหม่เป็น นี่คือแจ็ค เปลี่ยน UID เป็น 555 และเขาจะเป็นสมาชิกของกลุ่ม apple
เรามาดูวิธีการแก้ไขบัญชีแจ็คโดยใช้หลายตัวเลือกทันที
usermod -d /var/www/html/ -s /bin/bash -e 2014-12-10 -c "This is Jack" -u 555 -aG apple jack
จากนั้นตรวจสอบการเปลี่ยนแปลง UID และโฮมไดเร็กทอรี
grep -E --color 'jack' /etc/passwd
เช็คหมดอายุบัญชี
chage -l jack
ตรวจสอบกลุ่มที่แจ็คทั้งหมดเป็นสมาชิก
grep -E --color 'jack' /etc/group
15. เปลี่ยน UID และ GID ของผู้ใช้
เราสามารถเปลี่ยน UID และ GID ของผู้ใช้ปัจจุบันได้ หากต้องการเปลี่ยนเป็น GID ใหม่ เราจำเป็นต้องมีกลุ่มที่มีอยู่ มีบัญชีชื่อ สีส้ม โดยมี GID เป็น 777 แล้ว
ตอนนี้บัญชีผู้ใช้แจ็คของฉันต้องการกำหนด UID เป็น 666 และ GID เป็น Orange (777)
ตรวจสอบ UID และ GID ปัจจุบันก่อนที่จะแก้ไข
id jack
แก้ไข UID และ GID
usermod -u 666 -g 777 jack
ตรวจสอบการเปลี่ยนแปลง
id jack
บทสรุป
ที่นี่เราได้เห็นวิธีการใช้คำสั่ง usermod พร้อมตัวเลือกโดยละเอียด ก่อนที่จะทราบเกี่ยวกับคำสั่ง usermod เราควรรู้คำสั่ง 'useradd' และตัวเลือกในการใช้ usermod หากฉันพลาดประเด็นใด ๆ ในบทความโปรดแจ้งให้เราทราบผ่านความคิดเห็นและอย่าลืมเพิ่มความคิดเห็นอันมีค่าของคุณ