ฉันทำผิดพลาดเหมือนกันในการเพิ่มบัญชีของฉันไปยังกลุ่ม (ลืม-a
) ฉันติดตั้งระบบด้วยการล็อคอินรูทล็อคและบัญชีของฉันเป็นบัญชีเดียวในเครื่อง
คำตอบที่ยอมรับไม่ได้ช่วยฉัน ในขณะที่บูตเข้าสู่โหมดการกู้คืนสิ่งที่ฉันได้รับคือข้อความที่ไม่ช่วยเหลือ
ไม่สามารถเปิดการเข้าถึงคอนโซลบัญชีรากจะถูกล็อค ดู sulogin man page (8) สำหรับรายละเอียดเพิ่มเติม
กด ENTER เพื่อดำเนินการต่อ
หลังจากกด ENTER ระบบจะบู๊ตตามปกติ: ไม่มีโชคในการเข้าถึงรูทเพื่อแก้ไขปัญหา ฉันจะทิ้งคำตอบนี้ไว้ในกรณีที่บางคนลงเอยด้วยรองเท้าของฉันในตอนนี้ ใช้ต่อไปนี้เท่านั้นถ้าคุณไม่สามารถรับกับโหมดการกู้คืนผ่านด้วงเมนู
คำแนะนำเพื่อรับรูทเชลล์:
- บูตเข้าสู่เมนูด้วงและไฮไลต์ (แต่อย่ากดEnterบน!) ตัวเลือกการบูตปกติ (ไม่ใช่การกู้คืน!)
e
กด ด้วงจะแสดงตัวแก้ไขบรรทัดคำสั่งที่มีหลายบรรทัดซึ่งทุกอันอาจดูไม่คุ้นเคยหากไม่ได้ข่มขู่ ไม่ต้องกังวลการเปลี่ยนแปลงใด ๆ ที่คุณทำจะไม่ได้รับการบันทึกอย่างถาวร
linux ... ro ...
ค้นหาบรรทัดที่อ่านว่า นี่คือบรรทัดคำสั่งเคอร์เนล แทนที่ro
โทเค็นด้วยrw
เพื่อให้ระบบไฟล์รูทอ่าน / เขียนและเพิ่มพารามิเตอร์บรรทัดคำสั่งเคอร์เนลอีกinit=/bin/sh
ตัว นี้จะสั่งให้เคอร์เนลที่จะดำเนินการแทนsh
ในท้ายที่สุดบรรทัดควรมีลักษณะดังนี้/sbin/init
หมายเหตุ:คุณสามารถได้รับแม้กับพรอมต์เปลือย ฉันยินดีที่จะอธิบายวิธีทีละขั้นตอนหากสิ่งอื่นล้มเหลวสำหรับคุณ เพียงแสดงความคิดเห็นกับคำตอบนี้linux ... rw init=/bin/sh ...
grub>
- หลังการเปลี่ยนแปลงให้กดF10เพื่อใช้คำสั่งจากตัวแก้ไขเพื่อบูตระบบ (หรืออ่านคำแนะนำวิธีการบูตด้านล่างของหน้าต่างตัวแก้ไขหาก Grub ของคุณถูกคอมไพล์ต่างกัน) คุณจะได้รับพรอมต์รูตเชลล์เนื่องจากกระบวนการเริ่มทำงานเป็น PID 1 ที่มีข้อมูลประจำตัวของรูท
usermod -a -Gadm,sudo YOURUSERID
ทำให้เกิดการเปลี่ยนแปลงที่คุณต้องการที่จะทำให้ตัวอย่างเช่น ยืนยันid -a YOURUSERID
ว่าคุณได้รับสถานะสมาชิก sudo กลับมาแล้ว ในกรณีที่คุณได้รับ "คำสั่งไม่พบข้อผิดพลาด" การใช้งานและ/sbin/usermod
/bin/id
คุณไม่สามารถปิดหรือรีบูตระบบได้อย่างสมบูรณ์ในตอนนี้ reboot
, halt
หรือpoweroff
จะไม่ทำงานและexit
จากเชลล์จะนำไปสู่ความตื่นตระหนกเคอร์เนลเป็นกระบวนการ PID 1 ไม่คาดว่าจะเป็นเพียงทางออก ดังนั้นสองคำสั่งถัดไปที่คุณต้องออกคือ:
sync
exec /sbin/init
sync
ในกรณีที่มีสิ่งผิดปกติบันทึกการเปลี่ยนแปลงทั้งหมดลงในดิสก์และexec
แทนที่เชลล์ด้วยของจริงinit
(ซึ่งสามารถเป็น systemd, upstart หรือ System V init แต่มันถูกเรียกเสมอ/sbin/init
) ระบบมักจะทำการบู๊ตตามปกติ (ไม่มีโหมดการกู้คืน)
- เข้าสู่ระบบและรีบูตระบบหนึ่งครั้งเช่น -
sudo reboot
คุณควรได้รับสิทธิ์ sudo ของคุณกลับมา ขอแนะนำให้รีบูตเครื่องเนื่องจากinit
อาจมีการส่งผ่านพารามิเตอร์เพิ่มเติมในระหว่างการบู๊ตปกติและแม้ว่าเราจะไม่ได้ทำ ในกรณีที่exec
ล้มเหลวเพียงแค่รีเซ็ตเครื่องและปล่อยให้มันบูตตามปกติ ระบบไฟล์ที่ทำเจอร์นัลสมัยใหม่ทั้งหมดเช่น ext4, xfs และ btrfs จะกู้คืนตัวเองได้อย่างรวดเร็ว (ไม่กี่วินาทีสำหรับการตรวจสอบวารสารมากที่สุดถ้าsync
เอ็ดก่อนการรีเซ็ต) และคุณจะได้รับการตั้งค่าทั้งหมด
พื้นหลังเล็กน้อย
มีการอภิปรายเกี่ยวกับรายงานบั๊ก Debianเกี่ยวกับปัญหานี้และเท่าที่เข้าใจแล้วนี่เป็นการตัดสินใจของฟีเจอร์ไม่ใช่ข้อผิดพลาดซึ่งฉันตัดสินว่าเป็นความผิดพลาด หลังจากอยู่ในธุรกิจนี้มา 25 ปีฉันอดไม่ได้ที่จะไม่เห็นด้วยกับข้อโต้แย้งของ Michael Biebl ในข้อความ # 31ในหัวข้อนั้น:
พิจารณาสิ่งนี้: คุณมีแล็ปท็อปที่มีบัญชีรูทล็อค ตามค่าดีฟอลต์แล้วตัวบูตบูทตัวโหลดจะสร้างรายการบูตสำหรับโหมดช่วยเหลือ ดังนั้นแม้ว่าคุณจะล็อคไบออสลงเพื่อไม่ให้ทำการบูทจาก CD-Rom หรือ USB และรหัสผ่านของคุณจะป้องกันด้วงใครบางคนสามารถเข้าถึงรูทได้อย่างง่ายดาย
IMO ที่ถูกต้องหากไม่กว้างพอจะคัดค้านในข้อความ # 70โดย Felipe Sateler:
สำหรับคอมพิวเตอร์ (ส่วนใหญ่) การเข้าถึงทางกายภาพหมายถึงเกมสูญเสียความปลอดภัยเนื่องจากคุณสามารถแยกกล่องและรับฮาร์ดไดรฟ์ได้
นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งสำหรับแล็ปท็อปที่กล่าวถึงในข้อโต้แย้งของไมเคิล: ถ้าคุณปล่อยไว้โดยไม่ได้ตั้งใจสักครู่และมีคนติดตามข้อมูลของคุณแล็ปท็อปจะหายไปโดยไม่มีใครเห็นอีกเลย และสำหรับเครื่องใด ๆไม่ใช่ "มาก" หรือ "ส่วนใหญ่" แม้แต่เครื่องที่ยึดไว้ที่ 8 คะแนนในชั้นวางทันทีที่ผู้โจมตีเข้าสู่เครื่องทางกายภาพเกมก็จบลงแล้ว