Создание специальной учетной записи пользователя для отключения компьютера.Задача:
Создать учетную запись пользователя, которому разрешено только отключать компьютер. ОС FreeBSD 5.2
создать в папке /bin скрипт poweroff-shell со следующим содержанием:#!/bin/sh
shutdown -p +2 Turn off by user $LOGNAME
logger Turn off by user $LOGNAME
exit 0установить разрешения:
chmod 750 /bin/poweroff-shellсменить группу и владельца:
chown root /bin/poweroff-shell
chgrp operator /bin/poweroff-shellдобавить в файл /etc/shells строчку:
/bin/poweroff-shellсоздать пользователя poweroff:
c шелом /bin/poweroff-shell, домашней директорией /nonexistent,
сделать пользователя poweroff членом группы operator, с паролем по вкусу.
URL:
Обсуждается: http://www.opennet.me/tips/info/779.shtml
а не проще это через sudo делать ?
комп который нужно выключать - как правило десктоп, за которым работает не больше одного человека, добавить его пользователя в /etc/sudoers с правом запускать /sbin/poweroff без пароля, и все
тогда не проще ли добавить себя любимого в группу operator и делать shutdown -p now ?
> тогда не проще ли добавить себя любимого в группу operator и делать shutdown -p now ?find /dev -group operator не наводит на мысли ?
>>комп который нужно выключать - как правило десктоп, за которым работает не больше одного человека
>>>комп который нужно выключать - как правило десктоп, за которым работает не больше одного человекаГлупо рассматривать этот случай, потому что в данном случае админ и пользователь это одно лицо.
Лично я на домашней OpenBSD (где "три пальца" не работают)
записал жену в sudoers (NOPASSWORD) на команды halt и reboot -
ничего, пятый год работает. А Linux она выключала, просто уходя
в перезагрузку по "трем пальцам" - так что во фрюхе можно
делать точно так же - без всяких юзерей.
>Лично я на домашней OpenBSD (где "три пальца" не работают)работают. Нужно просто немного пересобрать GENERIC ;)
> комп который нужно выключать - как правило десктоп, за которым работает не больше одного человека.Далеко не всегда. Пример из жизни - сервер для доступа в инет в офисе, где когда все уходят необходимо полностью выключать электричество.
Помогает, однако.
У меня это сервер :)
И стаья писалась для серверов к которым доступ имеет только админ.
Просто когда пришел электрик и сказал что щас отключет электроэнергию во всем здание :), а меня рядом не оказалось то серверам пришлось очень плохо ...Вот и была сдела учетная запись которая помогает отключить сервера когда админа нет рядом и повешена инструкция как отключать :)
ещё acpi для этого помогает хорошо...
респект, идея хороша, сам несколько раз спотыкался, но не додумался.
Спасибо ! Рад что кому-то идея пригодилась :)
P.S Забыл написать, что по ssh/telnet/etc записе пользователя poweroff доступ лучше отключить :)
Полностью согласенВ свое время, работая на одном заводе в Сумах настраивал
выключение ч-з apm -- администратор не имеющий аккаунта
на сервере просто подходил и нажимал кнопку POWER - проще
уж некудаСистема была 4.7
Согласен.
В серверную имеют доступ только 4 человека, и хотя бы один будет на месте 100%. И линуха и бсд - работает на ура.
У нас сервак работает только днём - удобно выключать через SSH - набрал в PuTTY логин, а когда пароль - само выпало... оделся, дошёл до серва, вырубил из сети... и домой;)
Заводишь юзверя в группе оператор и делаешь в vipw shell`om скрипт с одной строкой /sbin/shutdown -p now. Он залогинился и машинка потухла.
Такое например не работает в FreeBSD (ключи и параметры).
4 DJ_S:У меня на 4.9 работает, а у тебя на 5.1 не работает ?-)
А как по мне очень элегантное решение проблеммы. Чтобы вырубить, или ребутнуть сервак нужно только ввести логин и пароль.
Таким макаром даже можно использовать какой то ssh клиент, который запоминает логин и проль, и делать ярлычок на рабочий стол "Выключить сервер".P.S.: Спасибо за идею.
а как реализовать подобным образом reboot? т.е. входишь например через putty под логином reboot и машинка ребутится автоматом. FreeBSD_4.10
>а как реализовать подобным образом reboot? т.е. входишь например через putty под
>логином reboot и машинка ребутится автоматом. FreeBSD_4.10Прописать вместо shutdown -> reboot религия не позволяет ?!
>>а как реализовать подобным образом reboot? т.е. входишь например через putty под
>>логином reboot и машинка ребутится автоматом. FreeBSD_4.10
>
>Прописать вместо shutdown -> reboot религия не позволяет ?!
я атеист ))
>Прописать вместо shutdown -> reboot религия не позволяет ?!Для reboot нужны рутовые права.
shutdown -r now
>>Прописать вместо shutdown -> reboot религия не позволяет ?!
>
>Для reboot нужны рутовые права.
>shutdown -r nowuse sudo
>use sudoshutdown -r now - религия не позволяет? ;))
>>use sudo
>
>shutdown -r now - религия не позволяет? ;)):-D
>>use sudo
>
>shutdown -r now - религия не позволяет? ;))-bash-2.05b$ shutdown -r now
-bash: /sbin/shutdown: Permission denied
>-bash-2.05b$ shutdown -r now
>-bash: /sbin/shutdown: Permission deniedтеперь ещё покажите что у вас выводит команда:
$ id
>теперь ещё покажите что у вас выводит команда:
>$ id
да я собственно привел результат команды чтобы показать, что как было сказано ранее рутовые права нужны для данного действия.-bash-2.05b$ id
uid=1000(adrt) gid=1000(adrt) groups=1000(adrt), 0(wheel)
>да я собственно привел результат команды чтобы показать, что как было сказано
>ранее рутовые права нужны для данного действия.Команда reboot требует рутовых прав для своей работы. Для запуска её от обычного пользователя вам посоветовали использовать sudo.
Либо, чтобы воспользовать командой shutdown -r now без рутовых прав, вы должны являться членом группы operator (для FreeBSD так, для линухов не знаю).>-bash-2.05b$ id
>uid=1000(adrt) gid=1000(adrt) groups=1000(adrt), 0(wheel)
>>да я собственно привел результат команды чтобы показать, что как было сказано
>>ранее рутовые права нужны для данного действия.
>
>Команда reboot требует рутовых прав для своей работы. Для запуска её от
>обычного пользователя вам посоветовали использовать sudo.
>Либо, чтобы воспользовать командой shutdown -r now без рутовых прав, вы должны
>являться членом группы operator (для FreeBSD так, для линухов не знаю).Решение с sudo куда красивеет. Членство в группе operator открывает возможность на чтение любого блочного устройства (например, ad0). Выполните find /dev -group operator
>Решение с sudo куда красивеет. Членство в группе operator открывает возможность на
>чтение любого блочного устройства (например, ad0). Выполните find /dev -group operatorДа.. вы мне уже показывали это.
sudo вообще рутовые полномочия процессу даёт, так что никаких преимуществ не вижу с точки зрения безопасности.
>sudo вообще рутовые полномочия процессу даёт,
>так что никаких преимуществ не вижу
>с точки зрения безопасности.В данном частном случае, когда $SHELL=/sbin/(shutdown|reboot) действительно их не видно.
>use sudo
а можно на эту тему подробнее?
>>use sudo
>а можно на эту тему подробнее?man sudo
man sudoers
man visudo
>>>use sudo
>>а можно на эту тему подробнее?
>
>man sudo
-bash-2.05b$ man sudo
No manual entry for sudo>man sudoers
-bash-2.05b$ man sudoers
No manual entry for sudoers>man visudo
-bash-2.05b$ man visudo
No manual entry for visudolol
>>man sudoя думаю можно было просто дать линк http://www.courtesan.com/sudo/ и не парить меня манами )))
>>>man sudo
>
>я думаю можно было просто дать линк http://www.courtesan.com/sudo/ и не парить меня
>манами )))можно было дать и конкретное решение. Только все уже достаточно подробно разобрано в треде.
>>>>use sudo
>>>а можно на эту тему подробнее?
>>
>>man sudo
>-bash-2.05b$ man sudo
>No manual entry for sudo
>
>>man sudoers
>-bash-2.05b$ man sudoers
>No manual entry for sudoers
>
>>man visudo
>-bash-2.05b$ man visudo
>No manual entry for visudo
>
>lol/home/chip> whereis sudo
sudo: /usr/local/bin/sudo /usr/local/man/man8/sudo.8.gz /usr/ports/security/sudo
/home/chip> whereis visudo
visudo: /usr/local/sbin/visudo /usr/local/man/man8/visudo.8.gz
/home/chip> pkg_info | grep sudo
sudo-1.6.8.7 Allow others to run commands as root
/home/chip> uname -rs
FreeBSD 6.0-BETA1
/home/chip>
>/home/chip> uname -rs
>FreeBSD 6.0-BETA1-bash-2.05b$ uname -rs
FreeBSD 4.10-RELEASE:)))
Статья толковая.