зарегистрировать crontab, используя текстовый файл на www-data аккаунте - PullRequest
0 голосов
/ 19 марта 2020

Попытка зарегистрировать crontab с помощью текстового файла, но cronjob находится в www-data учетной записи.

Я попытался сделать это

sudo -u www-data crontab.bak | crontab -

Однако это не так Работа. Интересно, можно ли зарегистрировать crontab с помощью текстового файла на www-data аккаунте.

1 Ответ

0 голосов
/ 19 марта 2020
sudo -u www-data crontab.bak | crontab -

Я предполагаю, что crontab.bak включает записи crontab, которые вы хотите добавить в crontab для учетной записи www-data. (Вы четко не сказали это в своем вопросе.)

Эта команда:

sudo -u www-data crontab.bak

пытается выполнить команду crontab.bak под учетной записью www-data. Поскольку crontab.bak не является командой, это не работает. Он должен выдать вам сообщение об ошибке, подобное

sudo: crontab.bak: command not found

, которое вы должны были включить в свой вопрос.

Кроме того, sudo применяется только к первой команде в вашем конвейере. В общем, если вы сделаете

sudo -u www-data command1 | command2

, он будет запускаться command1 под учетной записью www-data, но он будет запускаться command2 под вашей учетной записью. Это команда crontab, которую вы хотите запустить как www-data.

Если учетная запись www-data имеет разрешение на чтение файла crontab.bak, вы можете сделать это:

sudo -u www-data crontab crontab.bak

Если нет, вам придется прочитать файл из своей учетной записи и передать вывод в команду crontab, запущенную под учетной записью www-data:

cat crontab.bak | sudo -u www-data crontab -

Или, поскольку это Бесполезное использование cat :

sudo -u www-data crontab - < crontab.bak

Для ясности, в этой окончательной версии команда crontab работает как www-data и читает со своего стандартного ввода и перенаправления < crontab.bak обрабатывается оболочкой, запущенной под вашей учетной записью.

...