ฉันจะเพิ่มผู้ใช้ในกลุ่มผู้ใช้อื่นได้อย่างไร?


9

ฉันมี john ผู้ใช้และผู้ใช้ keith ในเซิร์ฟเวอร์ Ubuntu

ฉันเพิ่มผู้ใช้เหล่านี้โดยใช้

sudo adduser John 
sudo adduser Keith

ฉันจะเพิ่ม john ในกลุ่มของ Keith ได้อย่างไร

ฉันเหนื่อย:

sudo usermod -aG Keith john

แต่ฉันได้รับ:

usermod: group 'Keith' does not exist

ฉันต้องทำอะไรเพื่อแก้ไขปัญหานี้

คำตอบ:


17

คุณสามารถใช้ได้: usermod -a -G grouptoadd username

เนื่องจากมันชัดเจนน้อยกว่าที่ฉันคิดว่าทำไม -a -G ก็โอเคในขณะที่ -aG ไม่ใช่ฉันจะพยายามอธิบาย:

อ็อพชัน -G รับค่าหนึ่งค่าหรือรายการของค่า ในกรณีที่มีค่าหนึ่งค่าอาจจะได้รับเช่น: -GVALUE เนื่องจากไม่มีข้อกำหนดให้มีช่องว่างระหว่างตัวเลือกและค่า นี่เป็นเพียงการปฏิบัติทั่วไป

หากคุณมีกลุ่มที่เรียกว่า a บนระบบของคุณการโทร -Ga จะไม่ชัดเจน คุณต้องการให้ผู้ใช้มีกลุ่มเดียวหรือไม่? คุณกำลังโทร -a และ -G หรือไม่ ถ้าอย่างนั้นก็คือ "a" ค่าสำหรับ -G? ส่วนที่เหลือของค่า (to -G) อยู่ที่ไหน นอกจากนี้ยังเป็นเรื่องธรรมดาที่ตัวเลือกตัวอักษรตัวเดียวสามารถทำได้ก่อนตัวเลือกตัวอักษรอื่น ๆ ดังนั้นททท -xy == -yz แต่สิ่งนี้จะคลุมเครือเมื่อตัวเลือกใดตัวเลือกหนึ่งสามารถใช้ค่าเดียวเช่น VALUE หรือหลายค่าเช่น VAL1, Val2, val4 และอื่น ๆ

ดังนั้นเพื่อให้คำสั่ง FAILSAFE และทำงานอย่างถูกต้องสำหรับอินพุตทั้งหมดคุณต้องแยก -a จาก -G

จากman usermod:

ชื่อ

usermod - แก้ไขบัญชีผู้ใช้

สรุป

usermod [ตัวเลือก] เข้าสู่ระบบ

ลักษณะ

usermodคำสั่งปรับเปลี่ยนไฟล์ระบบบัญชีเพื่อให้สอดคล้องกับการเปลี่ยนแปลงที่มีการระบุไว้ในบรรทัดคำสั่ง

ตัวเลือก

ตัวเลือกที่ใช้กับคำสั่งusermodคือ:

  • -, - ผนวก

    เพิ่มผู้ใช้ไปยังเสริมกลุ่ม (s) ใช้เฉพาะกับตัวเลือก-G

  • ...

  • -G, --group GROUP1 [, GROUP2, ... [, GROUPN]]]

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

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

  • ...


อาจช่วยอธิบายได้ว่าเหตุใดตัวเลือกการแยกจึงใช้งานได้และตัวเลือกคืออะไร
Geek

@JourneymanGeek: เสร็จแล้ว! ทำงาน ...
Tamara Wijsman

superusers ควรรู้วิธีมนุษย์, imho ...
ЯрославРахматуллин

@ ЯрославРахматуллин superusers ควรแน่นอน อย่างไรก็ตามคำถามส่วนใหญ่ถูกถามโดย "ไม่ใช่ผู้ใช้ขั้นสูง" และตอบโดย "ผู้ใช้ขั้นสูง" คนที่ใหม่กับ linux นั้นไม่มีเหตุผลที่จะรู้คำสั่ง man ไม่ว่าในกรณีใดคำสั่งที่คุณให้นั้นเหมือนกับคำสั่งที่ดำเนินการโดย OP คำตอบของคุณไม่ได้อธิบายว่าทำไมมันจึงไม่เหมาะกับเธอ อย่างน้อยในระบบของฉันการแยกตัวเลือกไม่ได้สร้างความแตกต่าง
terdon

ดีแรกของทั้งหมดที่คุณไม่สามารถเรียกใช้ sudo ชื่อ adduser sudo adduser name2 เพราะเห็นว่าเป็นไวยากรณ์ไม่ถูกต้องสำหรับuseradd useradd รับอาร์กิวเมนต์ชื่อผู้ใช้หนึ่งรายการ ในการเพิ่มผู้ใช้สองคนคุณต้องเรียกใช้คำสั่งสองครั้ง ผู้ใช้ IE เพิ่ม; useradd kari จากนั้นคุณสามารถเพิ่ม kari ไปยังกลุ่ม arnes และในทางกลับกัน ป่วยเพิ่มความอดทนเพิ่มขึ้นหลังจากดูคำถามเหล่านี้อีกสองสามข้อแล้วตอบอย่างถูกต้อง สัญญา!
ЯрославРахматуллин

0

หากคุณดำเนินการคำสั่งตามที่ปรากฏในคำถามของคุณคุณไม่ได้สร้างผู้ใช้ Keith แต่เฉพาะผู้ใช้ John เพื่อรันคำสั่งอย่างใดอย่างหนึ่งหลังจากที่อื่น ๆ ในบรรทัดคำสั่งที่คุณต้องการจะแยกพวกเขาใช้หรือ; &&มิฉะนั้นจะรันเฉพาะคำสั่งแรกเท่านั้น:

sudo adduser John sudo adduser Keith
adduser: Only one or two names allowed.

หากคุณไม่ดำเนินการให้ถูกต้องระมัดระวังเกี่ยวกับตัวอักษร ในคำถามของคุณคุณพูดถึง "John" และ "john" สิ่งนี้น่าจะใช้ได้:

sudo adduser keith
sudo adduser john
sudo usermod -aG keith john

0

คุณยังสามารถแก้ไขไฟล์กำหนดค่าด้วยตนเอง:

sudo nano /etc/password
sudo nano /etc/group

กำหนด ID และฟิลด์อื่น ๆ

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