Quelle est la façon la plus «Ubuntu» d'empêcher certains utilisateurs de fermer, de suspendre, etc.?


21

Sur un système Unix traditionnel, les utilisateurs non root ne peuvent pas faire cela. Qu'est-ce qui donne aux utilisateurs cette capacité dans les environnements de bureau modernes et comment pourrais-je désactiver cette fonctionnalité par utilisateur ou par groupe?

J'ai vu une excellente méthode pour empêcher quiconque d'arrêter / de suspendre, mais idéalement ce que je recherche est d'empêcher certains utilisateurs (tels que, en les ajoutant / supprimant d'un certain groupe d'utilisateurs) de pouvoir exécuter un arrêt , redémarrez, suspendez.

Réponses:


20

Comme mentionné dans l'autre question, vous pouvez contrôler ces actions via le système d'autorité locale de PolicyKit.

Si vous créez un fichier /etc/polkit-1/50-local.d/restrict-shutdown.pklaavec un contenu comme:

[Disable shutdown/etc for group restricted]
Identity=unix-group:restricted
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

Cela empêchera tout membre du groupe restrictedd'effectuer les actions correspondantes. Sinon, si vous souhaitez restreindre des utilisateurs individuels, remplacez unix-group:restrictedpar unix-user:user1;unix-user:user2;.... Tout utilisateur ne correspondant pas à cette stratégie doit se retrouver avec le comportement par défaut.


Ne fonctionne plus le 14.04.1.
detly

0

Créez et modifiez ce fichier en tant que root:

/etc/polkit-1/localauthority/50-local.d/power-management.pkla

Copiez et collez les éléments suivants:

[Disable shutdown/restart for users jim jane]
Identity=unix-user:jim;unix-user:jane
Action=org.freedesktop.login1.reboot;org.freedesktop.login1.reboot-multiple-sessions;org.freedesktop.login1.power-off;org.freedesktop.login1.power-off-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no

[Disable suspend/hibernate for users jim jane]
Identity=unix-user:a;unix-user:vvpinker
Action=org.freedesktop.login1.suspend;org.freedesktop.login1.suspend-multiple-sessions;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.