mount -o rw,remount / -> passwd user -> sudo usermod -aG sudo,adm user ตรวจสอบ getent group sudo และ id">
 Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Linux

แก้ไข: is not in the sudoers file. This incident will be reported.

ข้อความเตือนที่น่ากลัวที่สุดสำหรับมือใหม่ Unix และ Linux น่าจะเป็น 「____ is not in the sudoers file. This incident will be reported.」 ในข้อผิดพลาดจริง ช่องว่างจะถูกแทนที่ด้วย username ของคุณ ทำให้ดูเหมือนจะมีคนจะได้ยินเรื่องข้อผิดพลาดของคุณ!

แต่ ไม่ต้องกังวลมาก ข้อความเรื่องการรายงานเหตุการณ์ แค่บันทึกใน system log ซึ่งในอดีตต้องมี system administrator ดูเพื่อหา exploits หากคุณใช้ระบบ single-user ไม่ต้องกังวลอะไร นอกจากใช้ขั้นตอนด้านล่างแก้ปัญหาทั่วไปนี้ ไม่มีใครจะเห็นรายงานอะไร

วิธีที่ 1: แก้ sudo ด้วยแอป usermod

ลองทำซ้ำข้อผิดพลาดด้วย sudo -i เพียงอย่างเดียว จะขอรหัสผ่าน หลังใส่แล้ว ควรได้ root shell หากเป็นเช่นนั้น พิมพ์ exit ออกมา ตอนนี้ควรใช้ sudo รันคำสั่งเป็น root ได้ปกติโดยไม่ต้องทำเพิ่ม

สมมติไม่ได้ผล ต้องหา root access อีกทาง หากเป็น Debian, Arch, Fedora, CentOS หรือเครื่องที่ให้สิทธิ์ root ให้ กด Ctrl+Alt+F2 เข้า virtual terminal พยายามล็อกอินเป็น root user

เข้า root แล้ว รัน:

usermod -aG sudo,adm ____

แทนที่ ____ ด้วย username จริงของคุณ อาจไม่มี output อะไรเลย ออกจาก root prompt แล้วกด Ctrl+Alt+F7 กลับ desktop แบบกราฟิก

ตอนนี้ใช้ sudo ได้ปกติ เพราะอยู่ในกลุ่ม sudo ตรวจสอบด้วย getent group sudo เป็น regular user

ควรเห็นชื่อคุณอยู่ในรายการ ตอนนี้รัน id เดียว ก็ควรเห็น sudo group ด้วย

วิธีที่ 2: รีเซ็ตรหัสผ่าน Ubuntu (Resetting an Ubuntu Password)

กระบวนการข้างต้นง่าย แต่ Ubuntu (และสปินออฟอย่าง Xubuntu, Kubuntu, Lubuntu) บล็อกการเข้าถึงบัญชี root ซึ่งช่วยลดข้อผิดพลาดแบบ 「This incident will be reported」 แต่หากคุณเจอข้อความนี้ แสดงว่ามีบางอย่างผิดปกติกับบัญชีผู้ใช้หลายบัญชี และคุณอาจไม่มีสิทธิ์เข้าบัญชีที่สร้างตอนติดตั้ง *buntu ที่ใช้อยู่ ทำตามขั้นตอนนี้ก็ต่อเมื่อไม่จำรหัสผ่าน

หากลืมรหัสผ่าน: เซฟงาน ปิดทุกอย่าง รีบูท หลังโลโก้ BIOS/UEFI กด Shift เร็วๆ เลือก 「Advanced options for Ubuntu」 แล้วเลือก recovery mode

เลื่อนลง root prompt รัน mount -o rw,remount / ตามด้วย passwd ____ แทนที่ ____ ด้วยชื่อบัญชีที่สร้างตอนติดตั้ง ใส่รหัสผ่านใหม่ รีสตาร์ท บางคนแปลกใจว่าง่ายมาก แต่ไม่เป็นปัญหาหากแน่ใจว่าไม่ยอมให้เข้าถึงระบบทางกายภาพ

ไม่ว่าจะรีเซ็ตใหม่หรือจำได้ เปิด Terminal รัน sudo usermod -aG sudo,adm ____ แทนที่ ____ ด้วยชื่อบัญชีแรกที่สร้าง จะขอรหัสผ่าน ทันทีที่ใส่เสร็จ จะใช้ sudo ได้ปกติจากบัญชีนี้อีก

อาจอยากตรวจสอบว่าการเปลี่ยนแปลงมีผล ลองรัน getent group sudo ตามด้วย id เหมือนก่อนหน้า เพื่อยืนยันว่าทุกอย่างทำงานถูกต้อง

สมมติเห็น sudo อยู่ใน output ของทั้งสองคำสั่ง คุณพร้อมแล้ว ไม่ต้องแก้ sudoers file ด้วย visudo หรือขั้นตอนอื่นๆ ที่อาจคุ้นเคย หากเคย troubleshoot ปัญหานี้มาก่อน ตราบใดที่คำสั่งทั้งสองนี้ผ่าน