ในอูบุนตู 18,19,20 ระบบไฮเบอร์เนต
คำสั่งต้องการ ซูโด
สำหรับการดำเนินการ:
"การอนุญาต systemctl ระงับ" กับ "การอนุญาต systemctl ไฮเบอร์เนต"
เพื่อปิดใช้งานพรอมต์รหัสผ่าน systemctl ไฮเบอร์เนต
ควรเพิ่มคำสั่งในรายการ sudoers (/etc/sudoers.tmp
)
ใช้ ซูโด วิซูโด
คำสั่งและเพิ่มที่ส่วนท้ายของไฟล์บรรทัดต่อไปนี้:
<ชื่อผู้ใช้> ALL=NOPASSWD: /usr/bin/systemctl ไฮเบอร์เนต
แต่ตอนนี้มีบั๊กเข้ามา เมนูปิดที่เรียบง่าย
การขยาย. ไฮเบอร์เนตดำเนินการโดย systemctl ไฮเบอร์เนต
ไม่ใช่โดย sudo systemctl ไฮเบอร์เนต
ตามความจำเป็น. การใช้งานนี้อยู่ในไฟล์ [email protected]/extension.js
ฉันสร้างปัญหาที่เกี่ยวข้องสำหรับส่วนขยายนี้:
ข้อบกพร่องใน Ubuntu 20.04: การกดปุ่ม [ไฮเบอร์เนต] ขอให้ป้อนรหัสผ่านก่อนทำการไฮเบอร์เนต
กระทำครั้งสุดท้ายเมื่อประมาณ 1 ปีที่แล้ว ดังนั้นจึงไม่รองรับส่วนขยายนี้
ด้านล่างนี้คือรายละเอียดทั้งหมดจากปัญหาที่มีวิธีแก้ปัญหา:
พฤติกรรมที่คาดหวัง
การกด ไฮเบอร์เนต
ปุ่มดำเนินการ sudo systemctl ไฮเบอร์เนต
.
หากมีผู้ใช้ที่เหมาะสมในรายการ sudoers (/etc/sudoers.tmp
แก้ไขโดย ซูโด วิซูโด
):
<ชื่อผู้ใช้> ALL=NOPASSWD: /usr/bin/systemctl ไฮเบอร์เนต
การดำเนินการจำศีลจะดำเนินการทันทีหลังจากกด ไฮเบอร์เนต
ปุ่ม.
ผลลัพธ์จริง
การกดปุ่ม [ไฮเบอร์เนต] ขอให้ป้อนรหัสผ่านผู้ใช้เพื่อดำเนินการอนุญาตสำหรับการดำเนินการ
ในบันทึกของระบบ (น้อยกว่า /var/log/syslog
) มีข้อผิดพลาด - "ไม่สามารถจำศีลระบบผ่านการเข้าสู่ระบบ: การเข้าถึงถูกปฏิเสธ":
02:51:06 gnome-shell[1983]: st_widget_get_theme_node เรียกบนวิดเจ็ต [0x564b127af6f0 Gjs_ui_popupMenu_PopupSubMenuMenuItem.popup-menu-item popup-submenu-menu-item:last-child ("")] ซึ่งไม่ได้อยู่ในขั้นตอน
02:51:06 Tgnome-shell[1983]: st_widget_get_theme_node เรียกบนวิดเจ็ต [0x564b127b6d00 StWidget:last-child] ซึ่งไม่ได้อยู่ในสเตจ
02:51:06 gnome-shell[1983]: st_widget_get_theme_node เรียกบนวิดเจ็ต [0x564b12781480 StBoxLayout ("")] ซึ่งไม่ได้อยู่ในสเตจ
02:51:13 systemd[1735]: แอปพลิเคชันเริ่มต้นที่เปิดใช้งานโดย gnome-shell
02:51:13 gnome-shell[5729]: ไม่สามารถจำศีลระบบผ่านการเข้าสู่ระบบ: การเข้าถึงถูกปฏิเสธ
02:51:27 gnome-shell[5729]: ไม่สามารถเริ่ม hibernate.target: การเข้าถึงถูกปฏิเสธ
02:51:27 gnome-shell[5729]: ดูบันทึกระบบและ 'สถานะ systemctl hibernate.target' สำหรับรายละเอียด
หลังจากป้อนรหัสผ่าน การดำเนินการไฮเบอร์เนตอาจทำได้โดยไม่ได้ systemctl ไฮเบอร์เนต
แต่คำสั่งอื่น ๆ ฉันไม่แน่ใจ แต่อาจจะโดย pm-จำศีล
หรือ จำศีล
คำสั่ง - สิ่งที่ไม่แนะนำ
ความแตกต่างระหว่าง "pm-hibernate" และ "systemctl hibernate"
คำตอบที่ค่อนข้างสั้นสำหรับสิ่งนี้คือ systemd ได้รับการดูแลอย่างแข็งขันในขณะที่ pm-utils ไม่ใช่
ในความเป็นจริง pm-utils ยังไม่ได้รับการอัพเดตตั้งแต่ปี 2010 ดังนั้นฉันจึงถือว่าซอฟต์แวร์นี้ทั้งเก่าและล้าสมัย
ขอแนะนำให้ใช้ systemctl จากจุดนี้เป็นต้นไป
ความแตกต่างระหว่าง "systemctl ไฮเบอร์เนต" และ "ไฮเบอร์เนต":
คำสั่งไฮเบอร์เนตถูกแทนที่ด้วย systemctl ไฮเบอร์เนต ขอแนะนำให้ใช้ systemctl ไฮเบอร์เนต คำสั่ง hibernate ยังคงมีอยู่ในระบบด้วยเหตุผลด้านความเข้ากันได้
ในอูบุนตู 18,19,20 ระบบไฮเบอร์เนต
คำสั่งต้องการ ซูโด
สำหรับการดำเนินการ:
"การอนุญาต systemctl ระงับ" กับ "การอนุญาต systemctl ไฮเบอร์เนต"
ในการดำเนินการของ SimplerOffMenu
นามสกุลใน ไฮเบอร์เนต
ปุ่มที่ตัวจัดการใช้
systemctl ไฮเบอร์เนต
, ไม่ sudo systemctl ไฮเบอร์เนต
ซึ่งจำเป็นต้องแก้ไขปัญหานี้
แก้ไข
เปลี่ยน นามสกุล js
ไฟล์ดังนี้:
ฟังก์ชัน FuncHibernate (วิดเจ็ต เหตุการณ์) {
Main.overview.hide(); พยายาม {
// แก้ไขการเริ่มต้น: เพิ่ม sudo
//Util.trySpawnCommandLine('systemctl จำศีล');
Util.trySpawnCommandLine('sudo systemctl จำศีล');
// แก้ไขจุดสิ้นสุด
} จับ (ผิดพลาด) {
Main.notify("ผิดพลาด" + err);
}
}
แก้ไขแล้ว นามสกุล js
ไฟล์คือ ที่นี่.
วิธีแก้ปัญหา
ในการแก้ไขปัญหานี้ใน Ubuntu 20.04 หลังจากติดตั้งส่วนขยายแล้ว ต้องทำดังต่อไปนี้:
เปลี่ยนสคริปต์ JS ของส่วนขยายที่ติดตั้งที่นี่:
/home/<your_user_name>/.local/share/gnome-shell/extensions/[email protected]/extension.js
(คุณสามารถค้นหาตำแหน่งของ นามสกุล js
ไฟล์โดย sudo find /* -name "extension.js"
)
จากนั้นเพิ่ม ซูโด
ตามที่อธิบายไว้ในการแก้ไขด้านบนและเซฟไฟล์
หากต้องการใช้การแก้ไขอาจเป็นเพียงการบันทึกไฟล์ก็เพียงพอแล้ว ฉันในกรณีที่ทำตามคำแนะนำจาก ที่นี่:
- ปิดใช้งานและเปิดใช้งานส่วนขยาย
กดปุ่ม config บน หน้าส่วนขยาย
- กด
Alt
+F2
, เข้ามา ร
และกด เข้า
- ออกจากระบบและเข้าสู่ระบบ