Jaki jest najbardziej „Ubuntu” sposób zapobiegania niektórym użytkownikom zamykania się, zawieszania itp.?

21

W tradycyjnym systemie uniksowym użytkownicy inni niż root nie mogą tego zrobić. Co daje użytkownikom taką możliwość w nowoczesnych środowiskach komputerowych i jak powinienem wyłączyć tę funkcję dla poszczególnych użytkowników lub grup?

Widziałem świetną metodę zapobiegania komukolwiek zamykania / zawieszania, ale idealnie to, czego szukam, to uniemożliwienie niektórym użytkownikom (np. Poprzez dodanie / usunięcie ich z określonej grupy użytkowników) możliwości wykonania zamykania , uruchom ponownie, zawieś.

thomasrutter
źródło

Odpowiedzi:

20

Jak wspomniano w drugim pytaniu, możesz kontrolować te działania za pośrednictwem systemu władz lokalnych PolicyKit.

Jeśli utworzysz plik /etc/polkit-1/50-local.d/restrict-shutdown.pklaz treściami takimi jak:

[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

Zapobiegnie to wykonaniu przez członka grupy restricteddopasowanych działań. Ewentualnie, jeśli chcesz ograniczyć indywidualnych użytkowników, wymienić unix-group:restrictedsię unix-user:user1;unix-user:user2;.... Każdy użytkownik, który nie spełnia tych zasad, powinien mieć domyślne zachowanie.

James Henstridge
źródło
Nie działa już 14.04.1.
detly
0

Utwórz i edytuj ten plik jako root:

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

Skopiuj i wklej następujące elementy:

[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
źródło