Score:0

วิธีกำหนดค่าปุ่มไฮเบอร์เนตไม่ให้ถามรหัสผ่านสำหรับการไฮเบอร์เนต (สำหรับส่วนขยาย Simpler Off Menu สำหรับ Ubuntu 20.04)

ธง it

ฉันกำหนดค่าไฮเบอร์เนตตามที่อธิบายไว้ ที่นี่ และติดตั้ง เมนูปิดที่เรียบง่าย คำพังเพยเชลล์นามสกุล ด้วยความช่วยเหลือของ นี้ การเรียนการสอน. ไฮเบอร์เนต ปุ่มใช้งานได้ แต่ทุกครั้งต้องใช้รหัสผ่านเพื่ออนุญาตให้ไฮเบอร์เนต วิธีกำหนดค่าไม่ให้ถามรหัสผ่านและทำการไฮเบอร์เนตทันที เช่น ระงับ ปุ่มดำเนินการระงับ?

Score:0
ธง it

ในอูบุนตู 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, เข้ามา และกด เข้า
  • ออกจากระบบและเข้าสู่ระบบ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา