การเข้าถึงของผู้ใช้เพื่อการกระทำเหล่านี้ถูกควบคุมโดย polkit โดยเฉพาะอย่างยิ่งพวกเขาสอดคล้องกับการกระทำดังต่อไปนี้:
org.freedesktop.consolekit.system.stop
org.freedesktop.consolekit.system.restart
org.freedesktop.upower.suspend
org.freedesktop.upower.hibernate
การดำเนินการทั้งหมดเหล่านี้ได้รับอนุญาตโดยค่าเริ่มต้นสำหรับผู้ใช้ในท้องถิ่นที่ใช้งาน (แม้ว่าจะconsolekit
จำกัด การอนุญาตสองครั้งแรกให้ทำงานเฉพาะเมื่อมีผู้ใช้คนเดียวที่ล็อกอินเข้าสู่ระบบ)
หากคุณต้องการปิดใช้งานการกระทำเหล่านี้ให้สร้างไฟล์/etc/polkit-1/50-local.d/disable-shutdown.pkla
ที่มีลักษณะดังนี้:
[Disable shutdown/whatever]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.stop;org.freedesktop.consolekit.system.restart;org.freedesktop.upower.suspend;org.freedesktop.upower.hibernate
ResultAny=no
ResultInactive=no
ResultActive=no
สิ่งนี้ควรป้องกันไม่ให้การกระทำเหล่านั้นสำเร็จ man pklocalauthority
ข้อมูลเพิ่มเติมเกี่ยวกับแฟ้มนโยบายเหล่านี้สามารถพบได้โดยการทำงาน
หากคุณพยายาม จำกัดroot
แต่นี่จะเป็นความไม่สะดวกเล็กน้อย โดยคำจำกัดความroot
เป็นบัญชีที่ไม่ จำกัด ตามระบบควบคุมการเข้าถึง UNIX แบบดั้งเดิม หากคุณไม่สามารถไว้วางใจผู้ใช้ที่คุณให้root
สิทธิ์การเข้าถึงอย่างเต็มที่แสดงว่าคุณมีปัญหาใหญ่กว่าพวกเขาเพียงแค่ปิดระบบ
โปรดทราบว่าใน Ubuntu รุ่นต่อมาบางคนตัดสินใจที่จะทำลายความเข้ากันได้ ตอบว่าในวิธีการปิดการใช้งานการปิด / รีบูตจาก lightdm ใน 14.04? ดูเหมือนว่าการกระทำจะเปลี่ยนเป็น "org.freedesktop. login1 .reboot" (และสิ่งที่คล้ายกัน)
ตัวอย่างเช่นใน 14.04 เพิ่มบรรทัดต่อไปนี้เป็น/etc/polkit-1/localauthority/50-local.d/restrict-login-powermgmt.pkla
งาน:
[Disable lightdm PowerMgmt]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot;org.freedesktop.login1.reboot-multiple-sessions;org.freedesktop.login1.power-off;org.freedesktop.login1.power-off-multiple-sessions;org.freedesktop.login1.suspend;org.freedesktop.login1.suspend-multiple-sessions;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no
นอกจากนี้โปรดทราบว่าวิธีการนี้จะบล็อกคำสั่งรีบูต / etc ที่ออกให้โดย GUI เท่านั้น เพื่อบล็อกคำสั่ง reboot / etc จากบรรทัดคำสั่งหนึ่งอาจใช้ molly-guard - ตามที่อธิบายไว้ในการปิดการใช้งานคำสั่งปิดสำหรับผู้ใช้ทั้งหมดแม้แต่ราก - ผลกระทบ?
shutdown
และออกpm-suspend
จาก/sbin/
และ/bin/