linux @ 14 Сентябрь 2008
Не знаю есть, ли возможность перезагружать и выключать компьютер в Fluxbox штатными методами(как например у Gnome есть соответствующий апплет), но ответа на этот вопрос я не нашёл.
Решение пришло мне из статьи про автомонтирование разделов, которую я буквально недавно написал.
Там есть строчка про добавление строки в /etc/sudoers:
ivman ALL = NOPASSWD: /bin/umount
Я сегодня собственно и подумал, а почему бы такое же не сделать для /bin/halt и /bin/reboot.
Чтобы не вводить постоянно пароль когда захочу перезагрузиться, или выключить компьютер, да и возможность это делать через меню Fluxbox является приятной. Единственное, что это недостаточно безопасно.
Итак, по порядку:
Нам понадобится Live CD какой либо операционной системы Linux, знание имени пользователя и того как Вы устанавливали систему(точнее как вы разбивали диски), под которым вы работаете(надеюсь это не root), и немного выпрямленные манипуляторы типа руки.
1. У меня был разбит так, что /usr и /var были на отдельных разделах(sda5 и sda6) а на / (sda1) висели другие разделы, кроме /home.
Узнать на каком разделе у Вас находится /etc можно командой:
df /etc | grep dev | awk '{print $1}'
Файловую систему под которую у вас отформатирован Ваш раздел можно узнать командой:
mount | grep /dev/sda1 | awk '{print $5}'
где /dev/sda1 результат первой команды
2. Теперь у нас есть вся необходимая информация, загружаемся с Live CD и открываем терминал и выполняем:
mkdir ~/root
sudo mount -t ext3 /dev/sda1 ~/root
cd ~/root
sudo chmod 777 etc/sudoers
sudo gedit etc/sudoers

По шагам:
Создаём директорию куда будем подключать раздел. Подключаем его(данные о разделе и типе файловой системы мы узнали ранее). Переходим внутрь. Меняем права на работу с файлом на доступ для всех.(по умолчанию они только на чтение)
Открываем текстовым редактором файл, добавляем строки:
user ALL = NOPASSWD: /bin/halt
user ALL = NOPASSWD: /bin/reboot

Где user - пользователь под которым вы работаете в системе.
Сохраняем, и выполняем:
sudo chmod 440 etc/sudoers
После этого перегружаемся в обычную систему, добавляем в ~/.fluxbox/menu
[exec] (Shutdown) {sudo halt 0}
[exec] (Reboot) {sudo reboot 0}

Сохраняем и пользуемся :)
Tags: ,

5 Response to “Выключение и перезагрузка компьютера в Fluxbox”

  1. RT200 Says:

    Хм.. непонятно.. Зачем такие сложности? Зачем awk, не проще ли "cat /etc/fstab"? Зачем вообще грузится с Live-CD, все можно сделать без перезагрузки? И небольшой хинт из man sudoers - все команды можно записывать в одну строчку, разделяя их запятыми:

    user ALL = NOPASSWD: /bin/halt, /bin/reboot

    P.S. для редактирования файла sudoers есть специальная команда visudo, запускающая редактор из переменной окружения EDITOR (или vi если переменная не определена) и после редактирования проверяющая синтаксис файла на наличие ошибок...

  2. librarian Says:

    2RT200: Ну просто чтобы, что называется не думать :)

    За хинт спасибо. А про visudo не знал, а то у меня там ошибка писалась.

    Спасибо за подсказку :) Очень всё сокращается тогда.

  3. reggae-man Says:

    блин когда ввожу в /etc/sudoers: что-нибудь, opensuse 10,3 неможет потом скомпилировать его.. запарился с ним.. приходится все время через

    su

    init 0

    ^))

  4. Станислав Says:

    ~/.fluxbox/menu

    [exec] (выключение) {shutdown -h now}

    [exec] (перезагрузка) {reboot}

  5. satsura Says:

    Есть еще один вариант, который более проще, чем все эти танцы с бубном:

    1. sudo -s

    2. ln -s /sbin/shutdown /usr/bin/shutdown

    3. chmod a+s /usr/bin/shutdown

    4. [exec] (Reboot) {shutdown -r now}

    [exec] (Shutdown) {shutdown -h now}

Leave a Reply

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)


(обязательно)