Запрет на выключение ПК (конкретному юзеру)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
Mahoney
Сообщения: 200
ОС: Fedora

Запрет на выключение ПК

Сообщение Mahoney »

Как сделать, чтобы конкретный юзер не мог выключить ПК? Он работает в KDE и знает два способа выключить: кнопкой на корпусе и через меню. Нужно запретить оба способа. Но настройка должна быть локальна для данного юзера, т.к. сам я хочу выключать кнопкой :)
I code, therefore I am...
Спасибо сказали:
SergM
Сообщения: 50
ОС: WinXP, SuSe 10.3

Re: Запрет на выключение ПК

Сообщение SergM »

Mahoney
Кнопка на корпусе - она, видите ли, ОС-независима... Кина не будет.
Спасибо сказали:
Аватара пользователя
petyanamlt
Сообщения: 1773
ОС: Kubuntu 16.04(x86-64)KDE 5.8.7

Re: Запрет на выключение ПК

Сообщение petyanamlt »

SergM писал(а):
18.02.2008 16:21
Mahoney
Кнопка на корпусе - она, видите ли, ОС-независима... Кина не будет.


Кнопку на корпусе и на бп. залить эпоксидкой,вилку припаять к розетке. :tongue:
Ну а в кедах,убрать к-меню и поставить в автозапуск только те проги которыми юзер пользуеться.
MSI 990FXA-GD80 SocketAM3+ / FX 8350 / Geforce gtx670 4GB / 4xHDD - 2000 -2х500 (Velociraptor) - 240ssd под Kubuntu / 16Gb RAM DDR3 1600 / TV TBS 6281. Ну и разгон естественно, жить без этого не могу.
(mail agent) petyanamlt собака маил.ру
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: Запрет на выключение ПК

Сообщение Voice »

Personal Settings -> System Administration -> Login Manager -> Shutdown -> Allow Shutdown
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

Re: Запрет на выключение ПК

Сообщение Black »

Кнопкой на корпусе заведует acpid, который отлавливает событя через /proc/acpi/events и, при наличии соответствующего действия в /etc/acpi/*.sh, запускает его. acpid запускается от root, поэтому определить кто нажал на кнопку он не может :-). Поэтому здесь только отключением действия.
А через меню - это запросто. Для начала надо определить, что прописано для этого пункта меню. Если на /sbin/shutdown или /sbin/halt есть suid-бит, убрать. Если разрешено через sudo, тоже убрать. Далее добавить в /etc/sudoers запись:

Код: Выделить всё

your_name     your_hostname=NOPASSWD:/sbin/poweroff

И вместо того, что было в меню, себе вписать "sudo poweroff" себе, юзеру - "xmessage Работай, не халтурь!".
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
Аватара пользователя
Mahoney
Сообщения: 200
ОС: Fedora

Re: Запрет на выключение ПК

Сообщение Mahoney »

Black писал(а):
18.02.2008 20:32
И вместо того, что было в меню, себе вписать "sudo poweroff" себе, юзеру - "xmessage Работай, не халтурь!".

Ты про какое меню? Я про KDEшный диалог завершения работы. Там, как я понял, задаётся раз и навсегда какая команда вызывается и кому её можно вызвать.
I code, therefore I am...
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

Re: Запрет на выключение ПК

Сообщение Black »

А, вот оно как. Ну тогда либо где-то должна быть галочка, либо надо лезть в исходники :). Я уж года два как в kde не сижу, поэтому не помню, как там всё делается.
А по поводу кнопки придумал ещё одно топорное решение: если acpid не используется ни для чего, кроме кнопки выключения, то можно убрать его запуск при старте, а себе добавить в ~/.kde/autostart (или как там его) такой скриптик (предварительно разрешив в /etc/sudoers без пароля):

Код: Выделить всё

sudo /etc/init.d/acpid start

Правда, остаётся вопрос с его остановкой после логаута. Если в kde есть что-то типа ~/.kde/autostop :), то туда надо добавить скрипт:

Код: Выделить всё

sudo /etc/init.d/acpid stop

Если такого нет, то придётся эту команду выполнять вручную.
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали: