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
обрабатывается оболочкой, запущенной под вашей учетной записью.