ฉันจะเพิ่มตัวเองกลับมาเป็นผู้ใช้ sudo ได้อย่างไร


64

ฉันทำความสะอาดติดตั้ง Ubuntu 11.10 วันนี้แล้วติดตั้ง VirtualBox สิ่งนี้ทำให้ฉันต้องเพิ่มตัวเองลงในกลุ่ม vboxusers และตั้งแต่ 11.10 ดูเหมือนว่าจะไม่มีแอพแบบกราฟิกที่จะเพิ่มผู้ใช้ในกลุ่มอีกต่อไปฉันจึงรันคำสั่งต่อไปนี้:

sudo usermod -G vboxusers stephane

นี่คือปัญหา. ตอนนี้ฉันเห็นสิ่งที่ฉันควรจะทำงานแทนคือ:

sudo usermod -aG vboxusers stephane

ผลลัพธ์ที่ได้คือฉันไม่อยู่ในกลุ่มที่ฉันควรจะอยู่อีกต่อไปรวมถึงกลุ่มใดก็ตามที่จำเป็นต้องเรียกใช้ "sudo" เมื่อฉันเรียกใช้คำสั่งใด ๆ เป็น sudo ตอนนี้ฉันได้รับต่อไปนี้:

$ sudo ls
[sudo] password for stephane: 
stephane is not in the sudoers file.  This incident will be reported.

มีวิธีแก้ไขหรือไม่หรือฉันต้องติดตั้งใหม่อีกครั้งตั้งแต่เริ่มต้นอีกครั้ง?

คำตอบ:


65
  1. ระหว่างการบู๊ตให้กดปุ่มซ้าย ค้างไว้Shiftและคุณจะเห็นเมนูด้วง

  2. เลือกรายการที่มี ( โหมดการกู้คืน ) และรอ

  3. ตอนนี้คุณควรได้รับการนำเสนอด้วยเมนู เลือก:

    remount    Remount / read/write and mount all other file systems 
    

    และรอสำหรับระบบไฟล์ของคุณจะได้รับการติดตั้งที่มีสิทธิ์ในการอ่าน / Enterเขียนแล้วกด

    หากตัวเลือกนี้ไม่ปรากฏขึ้นหรือไม่ทำงานคุณสามารถเลือกrootตัวเลือกและใช้คำสั่งต่อไปนี้เพื่อติดตั้งพาร์ติชันระบบ:

    mount -o remount /
    

    คุณสามารถตรวจสอบซึ่งเป็นพาร์ทิชันระบบของคุณด้วยคำสั่งหรือโดยการดูfsck/etc/mtab

    หลังจากเรียกใช้คำสั่ง mount สำเร็จแล้ว (เช่นไม่มีข้อความแสดงข้อผิดพลาด) ให้ทำตามขั้นตอนที่ 5 ด้านล่างโดยตรง

  4. หลังจากเลือกremountตัวเลือกเมนูจะปรากฏขึ้นอีกครั้ง เลือก:

    root       Drop to root shell prompt
    
  5. ตอนนี้ป้อนหนึ่งในคำสั่งต่อไปนี้เพื่อเพิ่มผู้ใช้ของคุณไปยังadminกลุ่ม (สำหรับ Ubuntu 11.10 และรุ่นก่อนหน้า):

    adduser <USERNAME> admin
    

    หรือsudoกลุ่ม (สำหรับ Ubuntu 12.04 ขึ้นไป):

    adduser <USERNAME> sudo
    
  6. รีบูทและคุณควรจะสามารถใช้งานได้sudoอีกครั้ง


3
หากคุณไม่เห็นเมนู "remount" คุณสามารถเลือก "fsck" ก่อนมันจะทำการติดตั้งระบบไฟล์ใหม่เพื่ออ่าน / เขียน หลังจากนั้นคุณสามารถเพิ่มผู้ใช้ของคุณในโหมดรูท
Jiejing Zhang

1
mount -o remount,rw /นี้ทำงานให้ฉันยกเว้นผมต้องติดตั้งระบบแฟ้มโดยใช้คำสั่ง
Passuf

มันทำงานได้อย่างสมบูรณ์แบบ นอกจากนี้ดูเหมือนว่าปัญหาด้านความปลอดภัยขนาดใหญ่ ฉันเดาว่าคุณควรปิดใช้งานคุณสมบัตินี้ในเครื่องที่เหมาะสมหรือไม่ - เมื่ออยู่ในโหมดการกู้คืนฉันไม่สามารถรีบูตได้ ฉันต้องใช้reboot -fเสมอ
Romain Vincent

15

หากเปิดใช้งานการเข้าสู่ระบบรูทบนระบบของคุณเพียงแค่ปล่อยเทอร์มินัลผ่านControl+ Alt+ F1โดยไม่ต้องเข้าสู่ X. เข้าสู่ระบบในฐานะรูทแล้วเพิ่มผู้ใช้ที่ต้องการในadminกลุ่ม (สำหรับ Ubuntu 11.10 และรุ่นก่อนหน้า):

adduser desired_user_name admin

สำหรับ Ubuntu 12.04 และใหม่กว่าเพิ่มผู้ใช้ในsudoกลุ่ม:

adduser desired_user_name sudo

หากคุณไม่ได้เปิดใช้งานการเข้าสู่ระบบรูทเพียงแค่เลือกโหมดการกู้คืนจาก Grub แล้วลองรูทเชลล์

รูตเชลล์

เมานต์ระบบไฟล์เป็นอ่าน - เขียน:

mount -o rw,remount /

หลังจากนั้นคุณสามารถเพิ่มผู้ใช้ที่คุณต้องการในกลุ่มadmin(หรือsudo) อีกครั้ง


แต่ฉันไม่สามารถเข้าถึง sudo จากผู้ใช้ของฉันได้!
Jamie Hutber

7

ฉันได้ลองชุดค่าผสมต่าง ๆ หลังจากทำสิ่งเดียวกันเนื่องจากตัวเลือกเมนู remount ดูเหมือนจะไม่เป็นใน 12.10 ฉันลองทุกอย่างในโพสต์นี้จากรูทแล้ว สุดท้ายคือ

umount -a
mount -o -w /<path> /

นี้ส่งผลให้ระบบแฟ้มที่ยังคงความROเนื่องจากการตั้งค่าในการบูต fstab ROในข้อผิดพลาดของระบบแฟ้มผมคิดว่ากับมันระบุว่าดูเหมือนจะเป็นROหลังจากภูเขา

ในที่สุดฉันก็จัดการกับมัน

mount -o rw,remount /

แม้ว่าฉันจะไม่แน่ใจว่าสิ่งนี้แตกต่างจากชุดคำสั่งก่อนหน้าอย่างไร

หลังจากใช้รูปแบบนี้การเพิ่มผู้ใช้ในกลุ่มadmin(11.10 และ ealrier) หรือsudo(12.04 และใหม่กว่า) จะทำแบบเดียวกัน:

adduser username admin    # 11.10 and earlier
adduser username sudo     # 12.04 and later

2

คำถามเก่า แต่เกิดขึ้นกับฉันด้วย (Ubuntu 14.04)

ฉันไม่สามารถเข้าสู่โหมดการกู้คืนและเข้าถึงรูทเชลล์ได้เนื่องจากมีคำตอบมากมายที่นี่และที่อื่น ๆ อธิบาย: รูทเชลล์เข้าถึงจาก GRUB ดูเหมือนว่าจะมีการป้องกันด้วยรหัสผ่าน

ดังนั้นฉันจึงแก้ไขปัญหาด้วยวิธีนี้:

  1. บูตที่ usb stick สด
  2. เปิดเปลือก
  3. เข้าถึงระบบไฟล์ HD Linux หลัก (คุณสามารถหาจุดติดตั้งได้ในแถบที่อยู่ของไฟล์ GUI explorer ซึ่งปกติจะอยู่หลัง CTRL-L) cdเป็นมัน
  4. แก้ไขไฟล์etc/group(พูดด้วยnano etc/groupหรืออะไรก็ได้)
  5. ค้นหาบรรทัด "sudo" ควรมีลักษณะดังนี้sudo:x:27:admin,bob,alice
  6. เพิ่มตัวเองในsudoบรรทัดคั่นด้วยเครื่องหมายจุลภาค

แน่นอนว่านี่หมายความว่าไฟล์etc/sudoersยังคงมีเส้นอยู่

%sudo   ALL=(ALL:ALL) ALL

หมายความว่าสมาชิกทุกคนในกลุ่มsudoมีการควบคุมทั้งหมด ตรวจสอบก่อนว่า

ทำงานโดยไม่ได้ผล


0

ฉันทำผิดพลาดเหมือนกันในการเพิ่มบัญชีของฉันไปยังกลุ่ม (ลืม-a) ฉันติดตั้งระบบด้วยการล็อคอินรูทล็อคและบัญชีของฉันเป็นบัญชีเดียวในเครื่อง

คำตอบที่ยอมรับไม่ได้ช่วยฉัน ในขณะที่บูตเข้าสู่โหมดการกู้คืนสิ่งที่ฉันได้รับคือข้อความที่ไม่ช่วยเหลือ

ไม่สามารถเปิดการเข้าถึงคอนโซลบัญชีรากจะถูกล็อค ดู sulogin man page (8) สำหรับรายละเอียดเพิ่มเติม
กด ENTER เพื่อดำเนินการต่อ

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

คำแนะนำเพื่อรับรูทเชลล์:

  1. บูตเข้าสู่เมนูด้วงและไฮไลต์ (แต่อย่ากดEnterบน!) ตัวเลือกการบูตปกติ (ไม่ใช่การกู้คืน!)
  2. eกด ด้วงจะแสดงตัวแก้ไขบรรทัดคำสั่งที่มีหลายบรรทัดซึ่งทุกอันอาจดูไม่คุ้นเคยหากไม่ได้ข่มขู่ ไม่ต้องกังวลการเปลี่ยนแปลงใด ๆ ที่คุณทำจะไม่ได้รับการบันทึกอย่างถาวร
  3. linux ... ro ...ค้นหาบรรทัดที่อ่านว่า นี่คือบรรทัดคำสั่งเคอร์เนล แทนที่roโทเค็นด้วยrwเพื่อให้ระบบไฟล์รูทอ่าน / เขียนและเพิ่มพารามิเตอร์บรรทัดคำสั่งเคอร์เนลอีกinit=/bin/shตัว นี้จะสั่งให้เคอร์เนลที่จะดำเนินการแทนsh ในท้ายที่สุดบรรทัดควรมีลักษณะดังนี้/sbin/init หมายเหตุ:คุณสามารถได้รับแม้กับพรอมต์เปลือย ฉันยินดีที่จะอธิบายวิธีทีละขั้นตอนหากสิ่งอื่นล้มเหลวสำหรับคุณ เพียงแสดงความคิดเห็นกับคำตอบนี้linux ... rw init=/bin/sh ...grub>
  4. หลังการเปลี่ยนแปลงให้กดF10เพื่อใช้คำสั่งจากตัวแก้ไขเพื่อบูตระบบ (หรืออ่านคำแนะนำวิธีการบูตด้านล่างของหน้าต่างตัวแก้ไขหาก Grub ของคุณถูกคอมไพล์ต่างกัน) คุณจะได้รับพรอมต์รูตเชลล์เนื่องจากกระบวนการเริ่มทำงานเป็น PID 1 ที่มีข้อมูลประจำตัวของรูท
  5. usermod -a -Gadm,sudo YOURUSERIDทำให้เกิดการเปลี่ยนแปลงที่คุณต้องการที่จะทำให้ตัวอย่างเช่น ยืนยันid -a YOURUSERIDว่าคุณได้รับสถานะสมาชิก sudo กลับมาแล้ว ในกรณีที่คุณได้รับ "คำสั่งไม่พบข้อผิดพลาด" การใช้งานและ/sbin/usermod/bin/id
  6. คุณไม่สามารถปิดหรือรีบูตระบบได้อย่างสมบูรณ์ในตอนนี้ reboot, haltหรือpoweroffจะไม่ทำงานและexitจากเชลล์จะนำไปสู่ความตื่นตระหนกเคอร์เนลเป็นกระบวนการ PID 1 ไม่คาดว่าจะเป็นเพียงทางออก ดังนั้นสองคำสั่งถัดไปที่คุณต้องออกคือ:

    sync
    exec /sbin/init
    

    syncในกรณีที่มีสิ่งผิดปกติบันทึกการเปลี่ยนแปลงทั้งหมดลงในดิสก์และexecแทนที่เชลล์ด้วยของจริงinit(ซึ่งสามารถเป็น systemd, upstart หรือ System V init แต่มันถูกเรียกเสมอ/sbin/init) ระบบมักจะทำการบู๊ตตามปกติ (ไม่มีโหมดการกู้คืน)

  7. เข้าสู่ระบบและรีบูตระบบหนึ่งครั้งเช่น - sudo rebootคุณควรได้รับสิทธิ์ sudo ของคุณกลับมา ขอแนะนำให้รีบูตเครื่องเนื่องจากinitอาจมีการส่งผ่านพารามิเตอร์เพิ่มเติมในระหว่างการบู๊ตปกติและแม้ว่าเราจะไม่ได้ทำ ในกรณีที่execล้มเหลวเพียงแค่รีเซ็ตเครื่องและปล่อยให้มันบูตตามปกติ ระบบไฟล์ที่ทำเจอร์นัลสมัยใหม่ทั้งหมดเช่น ext4, xfs และ btrfs จะกู้คืนตัวเองได้อย่างรวดเร็ว (ไม่กี่วินาทีสำหรับการตรวจสอบวารสารมากที่สุดถ้าsyncเอ็ดก่อนการรีเซ็ต) และคุณจะได้รับการตั้งค่าทั้งหมด

พื้นหลังเล็กน้อย

มีการอภิปรายเกี่ยวกับรายงานบั๊ก Debianเกี่ยวกับปัญหานี้และเท่าที่เข้าใจแล้วนี่เป็นการตัดสินใจของฟีเจอร์ไม่ใช่ข้อผิดพลาดซึ่งฉันตัดสินว่าเป็นความผิดพลาด หลังจากอยู่ในธุรกิจนี้มา 25 ปีฉันอดไม่ได้ที่จะไม่เห็นด้วยกับข้อโต้แย้งของ Michael Biebl ในข้อความ # 31ในหัวข้อนั้น:

พิจารณาสิ่งนี้: คุณมีแล็ปท็อปที่มีบัญชีรูทล็อค ตามค่าดีฟอลต์แล้วตัวบูตบูทตัวโหลดจะสร้างรายการบูตสำหรับโหมดช่วยเหลือ ดังนั้นแม้ว่าคุณจะล็อคไบออสลงเพื่อไม่ให้ทำการบูทจาก CD-Rom หรือ USB และรหัสผ่านของคุณจะป้องกันด้วงใครบางคนสามารถเข้าถึงรูทได้อย่างง่ายดาย

IMO ที่ถูกต้องหากไม่กว้างพอจะคัดค้านในข้อความ # 70โดย Felipe Sateler:

สำหรับคอมพิวเตอร์ (ส่วนใหญ่) การเข้าถึงทางกายภาพหมายถึงเกมสูญเสียความปลอดภัยเนื่องจากคุณสามารถแยกกล่องและรับฮาร์ดไดรฟ์ได้

นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งสำหรับแล็ปท็อปที่กล่าวถึงในข้อโต้แย้งของไมเคิล: ถ้าคุณปล่อยไว้โดยไม่ได้ตั้งใจสักครู่และมีคนติดตามข้อมูลของคุณแล็ปท็อปจะหายไปโดยไม่มีใครเห็นอีกเลย และสำหรับเครื่องใด ๆไม่ใช่ "มาก" หรือ "ส่วนใหญ่" แม้แต่เครื่องที่ยึดไว้ที่ 8 คะแนนในชั้นวางทันทีที่ผู้โจมตีเข้าสู่เครื่องทางกายภาพเกมก็จบลงแล้ว

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