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.

thomasrutter
la source

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.

James Henstridge
la source
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
Sepero
la source