ฉันจะเปลี่ยนกลุ่มเริ่มต้นของผู้ใช้ใน Linux ได้อย่างไร


41

เป็นสิ่งใหม่สำหรับการจัดการ Linux ฉันสับสนเล็กน้อยเกี่ยวกับคำสั่งต่อไปนี้:

useradd
usermod
groupadd
groupmod

ฉันเพิ่งอ่านหนังสือการดูแลระบบของผู้ใช้ในคู่มือของผู้ดูแลระบบ Linux / Unix แต่บางสิ่งยังคงมืดไปเล็กน้อย

โดยทั่วไปuseraddดูเหมือนจะตรงไปตรงมาพอ:

useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert

ฉันสามารถเพิ่ม "David Hilbert" ด้วยชื่อผู้ใช้hilbertการตั้งค่าไดเรกทอรีเริ่มต้นเปลือกและกลุ่มของเขา และฉันคิดว่า-gเป็นกลุ่มหลัก / กลุ่มเริ่มต้น-Gของเขาและเป็นกลุ่มอื่นของเขา

ดังนั้นนี่คือคำถามต่อไปของฉัน:

  1. คำสั่งนี้จะยังคงทำงานอยู่หรือไม่ถ้ากลุ่มfacultyและfamousไม่มีอยู่? มันจะสร้างมันขึ้นมาเหรอ?
  2. ถ้าไม่ฉันใช้คำสั่งอะไรเพื่อสร้างกลุ่มใหม่
  3. หากฉันลบผู้ใช้hilbertและไม่มีผู้ใช้อื่นในกลุ่มเหล่านั้นพวกเขาจะยังคงอยู่หรือไม่ ฉันควรลบออกไหม
  4. หลังจากฉันเรียกใช้useraddคำสั่งด้านบนฉันจะลบ David ออกจากfamousกลุ่มได้อย่างไรและมอบหมายกลุ่มหลักของเขาhilbertที่ยังไม่มี

คำตอบ:


27

usermodคำสั่งจะช่วยให้คุณสามารถเปลี่ยนกลุ่มหลักของผู้ใช้, กลุ่มเสริมหรือจำนวนของคุณลักษณะอื่น ๆ -gสวิทช์ควบคุมกลุ่มหลัก

สำหรับคำถามอื่นของคุณ ...

  1. หากคุณระบุกลุ่มgroupnameซึ่งไม่มีอยู่ในuseraddระยะคุณจะได้รับข้อผิดพลาด - useradd: group group ที่ไม่รู้จัก

  2. groupaddคำสั่งสร้างกลุ่มใหม่

  3. กลุ่มจะยังคงอยู่หากคุณลบผู้ใช้ทั้งหมดที่อยู่ใน คุณไม่จำเป็นต้องลบกลุ่มที่ว่างเปล่าออก

  4. สร้างกลุ่มผ่านทางhilbert จากนั้นย้ายกลุ่มหลักของดาวิดใช้groupadd hilbert usermod -g hilbert hilbert(โปรดทราบว่าชื่อแรกhilbertคือชื่อกลุ่มและชื่อที่สองhilbertคือชื่อผู้ใช้นี่เป็นสิ่งสำคัญในกรณีที่คุณต้องการย้ายผู้ใช้ไปยังกลุ่มที่มีชื่ออื่น)

คุณอาจจะซับซ้อนกว่านี้เล็กน้อย ในการแจกแจงลินุกซ์หลายอย่างง่าย ๆuseradd hilbertจะสร้างผู้ใช้hilbertและกลุ่มที่มีชื่อเดียวกันกับหลัก ฉันจะเพิ่มกลุ่มเสริมที่ระบุร่วมกันโดยใช้-Gสวิตช์


1
ขอบคุณ ถ้าฉันusermod -g hilbert hilbertจะลบกลุ่มอื่นของฮิลเบิร์ต? ถ้าเป็นเช่นนั้นฉันจะเก็บกลุ่มอื่นเหล่านั้นไว้ได้อย่างไรถ้าไม่ฉันจะลบเขาออกจากกลุ่มอื่นได้อย่างไร
cwd

ทดสอบและดูสภาพแวดล้อมเฉพาะของคุณ
ewwhite

@ คำตอบของ MIck ทำให้ upvote ของฉันเพราะเขาชี้ให้เห็นว่าคุณต้องใช้ -a กับ -G (ไม่เช่นนั้นกลุ่มที่คุณออกไปจะถูกลบ )
Jeff

9

คุณต้องอ่านman usermodสิ่งที่อธิบายถึงสิ่งที่เกิดขึ้นกับตัวเลือกต่างๆ:

usermod -g hilder hilder

จะแทนที่กลุ่มเข้าสู่ระบบของคุณจาก 'คณะ' เป็น 'ตัวสร้าง' ตราบใดที่มีกลุ่ม 'ตัวสร้าง' อยู่ หากไม่มีอยู่คุณต้องสร้างมันด้วย groupadd

เมื่อคุณใช้-Gตัวเลือกคุณควรใช้-aตัวเลือกเพื่อผนวกกลุ่มใหม่เข้ากับรายการปัจจุบันของกลุ่มเสริมที่ผู้ใช้ 'ผู้สร้าง' เป็นเจ้าของ หากไม่มี-aตัวเลือกคุณจะแทนที่กลุ่มเสริมปัจจุบันด้วยชุดกลุ่มใหม่ ดังนั้นควรใช้ความระมัดระวัง


5

ในการเปลี่ยนกลุ่มหลักของผู้ใช้ใน Linux:

  • usermod -g new_group user_name
  • ยุติเซสชันที่ใช้งานของuser_name ทั้งหมด

เพื่อทดสอบการเปลี่ยนแปลงของคุณทำงานidและดูค่าของgid=

หากคำสั่งทำงานโดยไม่มีข้อผิดพลาด แต่ gid จะไม่เปลี่ยนแปลงคุณได้พลาดส่วนที่เป็นตัวหนาของขั้นตอนที่ 2


1

คำตอบ # 1 เป็นสิ่งที่ดีคุณยังสามารถเลือกที่จะออกรายการต่อไปนี้เพื่อเพิ่มกลุ่มใหม่:

# nano /etc/group

ข้อเสียของการแก้ไข/etc/groupโดยตรงคือคุณจะต้องมี GID ที่ไม่ได้ใช้ (หมายเลขประจำตัวกลุ่ม)

ต่อไปนี้จะช่วยให้คุณเปลี่ยนกลุ่มหลักของผู้ใช้ # nano /etc/passwd

คุณค้นหาบรรทัดของผู้ใช้และเปลี่ยน GID (หมายเลขกลุ่มค้นหาใน/etc/group) จำไว้ว่าไวยากรณ์มีดังนี้:

 <name>:*:<UID>:<GID>:<comment>:<directory>:<shell>

มีข้อเสียที่ฉันสามารถคิดแนวทางนี้ (ให้คุณรู้ว่า GID) ที่ไม่มีคือมันเป็นสิ่งที่ผมมักใช้สำหรับผู้ใช้ในท้องถิ่นส่วนใหญ่เป็นเพราะผมใช้ระบบ UNIX ที่แตกต่างกันมากกับการที่แตกต่างกันusermod, adduserและuseraddตัวเลือกคำสั่ง

มันเป็นคู่มืออีกเล็กน้อย แต่ทำงาน โปรดทราบว่าคุณสามารถใช้viISO เพื่อแก้ไขไฟล์ถ้าคุณรู้ว่าnanovi


0

หากต้องการเปลี่ยนกลุ่มหลักของผู้ใช้อย่างถาวรให้ทำดังนี้

  • คำสั่งชื่อผู้ใช้ usermod -g groupname

หรือคุณสามารถใช้newgrpสำหรับสภาพแวดล้อมขนาดเล็กและสถานการณ์ชั่วคราว

dodoสร้างผมบ๊อบผู้ใช้ใหม่และกลุ่มใหม่

useradd bob

ดังนั้นใน RedHat / Centos เรามี UID = (ID_number) bob; GID = (ID_number) บ็อบเป็นกลุ่มหลักโดยค่าเริ่มต้น

groupadd dodo

เพิ่มผู้ใช้ bob ในdodoกลุ่ม:

usermod -aG dodo bob -make sure to use "a"

ใช้ครั้งถัดไปnewgrpเพื่อเปลี่ยนความเป็นเจ้าของ:

newgrp dodo

ระวังบัญชีของคุณให้มีรหัสผ่านและเป็นสมาชิกของกลุ่มหลักในอนาคต และ newgrp เปิดเชลล์ใหม่ ตราบใดที่ผู้ใช้ยังอยู่ในเชลล์นั้นกลุ่มหลักจะไม่เปลี่ยนแปลง หากต้องการเปลี่ยนกลุ่มหลักกลับไปเป็นดั้งเดิมคุณสามารถปล่อยให้เชลล์ใหม่โดยเรียกใช้คำสั่ง exit

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.