Я пытаюсь запланировать отключение сервера ubuntu 14 каждый вечер в 12:01 с помощью /sbin/poweroff.
.Так как вам нужен root для выключения, команда не работает. Если я поставлю sudo перед командой, она запросит пароль, но я не на сервере, поэтому я не смогу его ввести.
Как я могу запланировать завершение работы с помощью gnome-scheduler, чтобы он автоматически вводил пароль?
Я думаю, что лучший способ сделать это - двухступенчатый процесс:
1) добавление команды, которую Вы хотите, выполняется как корень в sudoers
так, чтобы Ваш обычный пользователь мог выполнить его без пароля. Чтобы сделать это, создайте файл в /etc/sudoers.d/
; можно назвать его вообще, Вы хотите, например my-settings
(1) (2):
sudo gedit /etc/sudoers.d/my-settings
с содержанием:
romano ALL=NOPASSWD: /usr/sbin/pm-suspend
romano ALL=NOPASSWD: /sbin/poweroff
(очевидно, изменение romano
с Вашим обычным пользователем; если Вы не должны приостанавливать также, можно опустить первую строку). Теперь необходимо сделать файл читаемым корнем только:
sudo chmod 440 /etc/sudoers.d/my-settings
... и Вы установлены. Теперь необходимо смочь работать sudo /sbin/poweroff
для отключения машины и Вам не предложат пароль.
2) Добавьте команду sudo /sbin/poweroff
к Вашему планировщику гнома или использованию это в Ваших сценариях.
Я использую его много, чтобы сделать ночное резервное копирование с командной строкой стиля "my_backup_script; sudo/usr/sbin/pm-suspend' или после долгих команд (говорят, преобразовывая формат видео и затем выключение питания).
Существует страница Ubuntu о sudoers файле, но это не действительно актуально (это было записано перед sudo
утилита имела способность проанализировать /etc/sudoers.d
каталог), хотя информация там все еще допустима.
(1) обратите внимание что эта работа в последней версии sudo
(Я имею в виду, доступность /etc/sudoers.d
каталог). Можно проверить, будет ли это работать путем рассмотрения файла '/etc/sudoers; если это имеет строку (около конца)
#includedir /etc/sudoers.d
это будет работать. Иначе необходимо добавить вышеупомянутые строки непосредственно к /etc/sudoers
файлы; будьте осторожны и используйте visudo
для этого, потому что поврежденный /etc/sudoers
файл является одной из самых трудных вещей восстановиться в системах Ubuntu.
Если Вы редактируете основные файлы непосредственно, предупреждены, что это могло быть перезаписано на обновлениях.
(2) Никакие позволенные точки, не используйте расширение! Посмотрите /etc/sudoers.d/README
для большего количества информации.
Если Вам не надоедает безопасность, можно подготовить сценарий завершения работы с:
echo <the_password_in_clear> |sudo -S /sbin/shutdown -P now
Тогда расписание это в кроне (например, с помощью расписания гнома). Вышеупомянутая строка введет пароль (это находится в читаемом формате) в sudo сессию для завершения работы. Используйте -P
опция сохранить компьютер поворотным на расписанием BIOS (я предполагаю, что требуется повернуть ПК on& прочь полностью автоматического).
, Кроме того, управляя завершением работы с помощью пользовательского сценария дает возможность включать дополнительные действия, которые будут выполнены перед фактическим завершением работы, не смешивая с системными файлами.