จะลบผู้ใช้ออกจากกลุ่มได้อย่างไร?


108

ฉันเพิ่มบัญชีผู้ใช้ไปยังadminกลุ่มและค้นพบว่าฉันเพิ่มผู้ใช้ผิด ดังนั้นตอนนี้ฉันต้องลบบัญชีออกจากadminกลุ่ม

ฉันจะลบบัญชีออกจากกลุ่มโดยไม่ลบผู้ใช้ได้อย่างไร

คำตอบ:


144

คำตอบของ Portablejim นั้นถูกต้อง แต่อันตราย - ถ้าคุณพิมพ์อะไรบางอย่างระบบของคุณอาจใช้ไม่ได้โดยเฉพาะถ้าคุณเปลี่ยนกลุ่มผู้ดูแลระบบอย่างไม่ถูกต้อง หากคุณต้องแก้ไขไฟล์กลุ่มให้ใช้คำสั่งvipw -gหรือvigrซึ่งตรวจสอบไวยากรณ์ก่อนที่จะบันทึก ถึงอย่างนั้นก็มีวิธีที่ดีกว่า

จาก commandline สิ่งที่คุณอาจต้องการใช้มีดังต่อไปนี้ (เป็น root):

deluser <username> <groupname>

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


9
gpasswdไม่เลิกใช้ วัตถุประสงค์ทั้งหมดมีไว้เพื่อจัดการ / etc / group และ / etc / gshadow นอกจากนี้ในขณะที่วิธีการของคุณใช้งานได้และถูกกล่าวถึงในหน้า man deluser มันมีความเสี่ยงเล็กน้อย หากคุณกด Enter โดยไม่ตั้งใจก่อนพิมพ์ชื่อกลุ่มคุณจะลบผู้ใช้ออก ดีกว่าหวังว่าคุณจะจำ UID ของมันเพื่อให้คุณสามารถเพิ่มกลับได้อย่างรวดเร็ว มันจะปลอดภัยกว่าถ้าใช้ gpasswd ซึ่งออกแบบมาเพื่อจุดประสงค์นี้
ปลาดาว

1
ฉันคิดเกี่ยวกับความเสี่ยงนี้เช่นกัน ฉันเดาว่าคุณสามารถเริ่มต้นคำสั่งดังกล่าวด้วย '#' กด Enter แล้วรันใหม่อีกครั้งในขณะที่เพิ่งลบอักขระแรก
ezequiel-garzon

"คุณต้องเข้าสู่ระบบใหม่เพื่อดูผลกระทบ" ... หรือคุณอาจจะเขียน: 'cat / etc / group'
josh.thomson

ฉันได้ค้นพบdeluserขณะค้นหา man pages (ที่นี่กับ Ubuntu 18 ในปี 2018) แต่บรรทัดแรกใน man page ระบุว่า: "ลบผู้ใช้หรือกลุ่มออกจากระบบ" ดังนั้นฉันจึงทำการค้นหาต่อไป เห็นได้ชัดว่าหน้าคนจะต้องพูดดีกว่า
tim.rohrer

ฉันพบคำตอบนี้ในบทความและขนบนหลังคอของฉันก็ยืนขึ้น ฉันไม่รู้ว่าทำไมคนจำนวนมากถึงชอบและยอมรับคำตอบนี้ แต่มันอันตราย IMHO; โดยเฉพาะอย่างยิ่งเป็นราก คำตอบของ Anthony Geoghegan เป็นคำตอบที่เหมาะสม เช่นเดียวกับปลาดาวพูดด้วย

46

คุณสามารถทำได้:

sudo gpasswd -d username group

คุณควรตรวจสอบคู่มือของ gpasswd ด้วย


4
ข้อดีอย่างหนึ่งของgpasswdมันก็คือมันข้ามแพลตฟอร์มมากขึ้นและยังทำงานบนการแจกแจง Red Hat-based
Anthony Geoghegan

นี่คือคำตอบที่ถูกต้อง ถ้าเพียง แต่มันเพิ่มขึ้นไปด้านบน

คุณสามารถแก้ไขคำตอบของคุณเพื่ออธิบายว่าแฟล็ก -d ทำอะไรได้บ้าง (ฉันโหวตให้เป็นคำตอบที่ดีที่สุดแล้วขอบคุณ!)
Aerendir

2

วิธีที่ง่ายที่สุดและปลอดภัยที่สุด:

sudo -H gedit /etc/group

และลบด้วยตนเอง


ฉันเห็นสิ่งนี้น่าอิจฉา ssh:x:118: ความหมายของตัวเลข118ที่นี่คืออะไร?
ankit7540

ไม่ใช่วิธีที่ปลอดภัยที่สุด!
callmebob

2

ดูคำตอบของ zanfur

แก้ไข/etc/groupไฟล์ในฐานะ root (เช่นgksudo gedit /etc/group) และลบชื่อผู้ใช้ออกจากบรรทัดที่ขึ้นต้นด้วย 'admin'

กล่าวคือ

...
admin:x:120:adminuser,adminuser2,userthatshouldnotbeadmin
...

กลายเป็น

...
admin:x:120:adminuser,adminuser2
...

ถูกเตือนความผิดพลาดภายในไฟล์อาจทำให้ระบบของคุณเสียหายได้


11
กรุณาอย่าแนะนำให้แก้ไขไฟล์ระบบเหล่านี้ด้วยตนเอง ในกรณีที่คุณพลาดระบบของคุณอาจไม่สามารถเข้าถึงได้
gertvdijk

หรืออย่างน้อยก็สำรองไว้ก่อน ( ข้อมูลที่เกี่ยวข้อง )
Eliah Kagan

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