Qual è il modo più "Ubuntu" per impedire a determinati utenti di chiudere, sospendere ecc.?


21

Su un sistema Unix tradizionale, gli utenti non root non possono farlo. Che cosa offre agli utenti questa capacità nei moderni ambienti desktop e come potrei fare per disabilitarlo su base per utente o per gruppo?

Ho visto un ottimo metodo per impedire a chiunque di chiudere / sospendere, ma idealmente quello che sto cercando è impedire ad alcuni utenti (come, aggiungendoli / rimuovendoli da un determinato gruppo di utenti) di essere in grado di eseguire un arresto , riavvia, sospendi.

Risposte:


20

Come menzionato nell'altra domanda, è possibile controllare queste azioni tramite il sistema delle autorità locali di PolicyKit.

Se si crea un file /etc/polkit-1/50-local.d/restrict-shutdown.pklacon contenuti come:

[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

Ciò impedirà a qualsiasi membro del gruppo restricteddi eseguire le azioni corrispondenti. In alternativa, se si desidera limitare singoli utenti, sostituire unix-group:restrictedcon unix-user:user1;unix-user:user2;.... Qualsiasi utente non rispettato da questo criterio dovrebbe finire con il comportamento predefinito.


Non funziona più il 14.04.1.
detly

0

Crea e modifica questo file come root:

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

Copia e incolla quanto segue:

[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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.