Как запустить команду без sudo? - PullRequest
6 голосов
/ 06 августа 2010

Я хочу добавить строку в crontab (на моей локальной машине), которая будет запускаться каждые пять минут. Моя проблема в том, что команда, которую я собираюсь использовать, требует sudo:

sudo indexer --config /usr/local/etc/sphinx.conf --all --rotate

Можно ли выполнить команду без использования sudo и без запроса пароля?

Спасибо!

Ответы [ 5 ]

3 голосов
/ 06 августа 2010

Поместите его в crontab root

sudo crontab -e

Там вы можете поместить

indexer --config /usr/local/etc/sphinx.conf --all --rotate

Все команды в этом crontab будут выполняться как rootЕсли вы просто du crontab -e в качестве текущего пользователя, они будут выполняться с разрешениями ваших пользователей.

2 голосов
/ 10 августа 2010

Просто добавьте свою команду в список файлов sudoer с помощью cmd visudo (этот cmd требует привилегий root), как показано ниже:

<YOUR_USER_NAME> ALL = NOPASSWD:<ABSOLUTE-PATH-TO-CMD>

Позаботьтесь о ABSOLUTE-PATH-TO-CMDдыра в безопасности.

1 голос
/ 06 августа 2010

Чрезвычайно опасно помещать приложения в crontab root, если ящик не защищен от хакеров.Если случайно кто-то заменит двоичные файлы (включая библиотеки), вы ушли!

Лучшим способом было бы сократить все файлы, к которым двоичный файл обращается к непривилегированному пользователю, и запускать задание как непривилегированный пользователь.

Ни один из двоичных файлов, используемых приложением, не должен быть доступен для записи никем, кроме root.

0 голосов
/ 07 августа 2010

Вы можете настроить sudo, чтобы не спрашивать пароль. Прочтите man sudoers, как это сделать. Поиск строки NOPASSWD.

0 голосов
/ 06 августа 2010

запустить его как рут? или сфинкс пользователь? попытайтесь выяснить, для какого пользователя он нужен, и добавьте его к этому пользователю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...