Альтернативный способ запуска команды sudo при запуске

В вики Document Foundation содержится специальная страница справки для установки нескольких версий LibreOffice:

см. конкретные инструкции для систем Linux (включая Debian-based, например Ubuntu); или общую страницу, которая включает ссылки на подробные инструкции для Windows, OSX и Linux.

Я понимаю, что ответы «только для ссылок» недоверчивы, но лучше указать на эту документацию (которая будет обновлена), чем предоставить сомнительную копию / вставить здесь (что может легко затухать).

1
задан 5 February 2015 в 09:17

3 ответа

Запустите sudo crontab -e -u root и добавьте строку @reboot /path/to/script в конец файла, затем пользователь root автоматически выполнит ваш скрипт как root при входе в систему. И дружеское напоминание о том, чтобы никто кроме вас и root не мог получить доступ к скрипту, иначе люди могли бы запускать любую команду как root.

3
ответ дан 23 May 2018 в 23:31
  • 1
    Это работает для меня. Но вместо того, чтобы поддерживать его всегда, лучшим вариантом было бы запустить скрипт каждые 5 минут или около того (как упоминалось в ответе @ tripleee) – spiderbat 5 February 2015 в 15:38
  • 2
    Я согласен, да. Однако это зависит от того, как OP пишет свой скрипт. Если он светлый и хорошо написанный, это может быть хорошо. Кроме того, любые будущие люди, пришедшие сюда Google, могут найти решение, о котором я упоминал, лучше всего для их конкретных футуристических потребностей. – John Cave 5 February 2015 в 21:47
  • 3
    Я прочитал о настройке выскочки и нашел, что это более элегантный выбор. Ваш ответ, безусловно, полезен, и я хочу его продвигать (если не принимать), но, к сожалению, у меня недостаточно репутации для этого. – spiderbat 6 February 2015 в 08:45
Этот скрипт будет запущен при запуске.

Если вы действительно имеете в виду это, вы уже говорите о привилегиях root.

Как выглядит остальная часть вашего скрипта? Мы не можем действительно судить о безопасности или об отсутствии того же из изолированных команд.

Один из вариантов - запустить его, скажем, каждые 5 минут из root crontab. Если вы боитесь последствий безопасности, вы можете создать отдельного пользователя, который имеет ограниченные привилегии, кроме управления питанием.

Добавьте это в новый файл:

*/5 * * * * root /usr/local/sbin/hibernate-on-power-low

(где, возможно, root можно заменить специальным пользователем, если хотите) и установить это в /etc/cron.d/hibernate-maybe. Очевидно, что скрипт, который выполняет настоящую работу, должен быть установлен в /usr/local/sbin/hibernate-on-power-low и правильно проверен для обеспечения безопасности и эффективности (возможно, использование прямого интерфейса ядра будет более надежным и эффективным, чем grep) и, очевидно, если вы запустите с уже достаточные привилегии, вам не нужно sudo для запуска pm-hibernate.

1
ответ дан 23 May 2018 в 23:31
  • 1
    Мне нравится идея создания пользователя (или, скорее, группы) с привилегиями управления питанием. – spiderbat 5 February 2015 в 15:26

Другой альтернативой является использование sudo -S (что тоже небезопасно).

-S переключатель sudo будет читать пароль из STDIN. Итак, вы можете использовать его как:

echo 'password' | sudo -S <command>
0
ответ дан 23 May 2018 в 23:31
  • 1
    Это потребует хранения моего пароля в файле (или, скорее, в скрипте), который я не считаю безопасным. Спасибо за вход в любом случае. – spiderbat 5 February 2015 в 15:20
  • 2
    Нет, вам не нужно хранить пароль в отдельном файле. Только echo password - sudo. Во всяком случае, это не безопасно. – heemayl 5 February 2015 в 15:21

Другие вопросы по тегам:

Похожие вопросы: