Відповіді:
Я не буду вникати, наскільки це погана ідея; Простіше кажучи, для запуску sudo
в crontab потрібен ваш пароль зберігатися десь у простому тексті.
Це погана ідея.
Далі подано кращий метод виконання адміністративних завдань через cron. Оскільки вам не потрібно писати sudo
в crontab, якщо ви змінюєте crontab root.
Виконайте таку команду:
sudo crontab -e
Це відкриває root
кронтаб. sudo
не потрібно запускати свою команду в цьому контексті, оскільки вона буде викликана як root
інакше.
Тому ви просто додасте наступне до кронати кореня.
@hourly rm somefile
Тепер, якщо ви абсолютно хочете бути небезпечними та ризикувати своїм паролем, наступне запустить вашу команду зі свого власного crontab та введе ваш пароль автоматично, коли буде запропоновано sudo
.
Знову ж таки, це не рекомендується .
У власному crontab напишіть свою команду так:
@hourly echo "password" | sudo -S rm somefile
Очевидним недоліком тут є те, що якщо хто-небудь коли-небудь матиме доступ до вашого crontab, ваш пароль буде читабельний у простому тексті.
Ти не повинен цього робити.
root
crontab користувача 'замість загальносистемного crontab /etc/crontab
?
sudoers
файлі, як групи судо без вимоги пароля.
Якщо ви розміщуєте скрипт з одного з директорій cron ( /etc/cron.*
), вам не потрібно використовувати sudo, оскільки він працює як root.
Якщо ви використовуєте crontab, тоді вам потрібно буде використовувати crontab root. Це запустить його як root, а також не потребуватиме sudo.
sudo crontab -e
Виконайте наступну команду в терміналі
sudo visudo
До кінця файлу додано наступний рядок:
vidyadhar ALL= NOPASSWD: /bin/rm
У наведеному вище прикладі vidyadhar - це ім'я користувача, і він не буде запитувати пароль, якщо ви виконуєте команду rm через vidyadhar.
sudo rm -rf 'slash'
( не запускайте цю команду ), запускається від цього користувача, не вимагає пароля .. Я не знаю, це почувається небезпечно, ні?
vidyadhar ALL= NOPASSWD: /bin/rm somefile
було б більш безпечно.
<username> ALL=(ALL) NOPASSWD: /home/<username>/bin/<script>
, що було б набагато безпечніше.