web-dev-qa-db-fra.com

Quel est le moyen le plus "Ubuntu" d'empêcher certains utilisateurs de s'arrêter, de suspendre, etc.?

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

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

20
thomasrutter

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.pkla avec un contenu tel que:

[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 restricted d'effectuer les actions correspondantes. Sinon, si vous souhaitez restreindre des utilisateurs individuels, remplacez unix-group:restricted par unix-user:user1;unix-user:user2;.... Tout utilisateur non associé à cette stratégie doit se retrouver avec le comportement par défaut.

20

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

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

Copiez et collez ce qui suit:

[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
0
Sepero