Обновить crontab моего веб-пользователя с помощью sudo

Мне нужно обновить crontab моего веб-пользователя (пользователя, который запускает все веб-сайты). В моем crontab я использую сценарий оболочки с командами, которые должны использовать "sudo".

Сценарий хорошо выполняется, но я получаю сообщения об ошибках, несколько примеров ниже:

mv: cannot move 'cms/configs/database.json' to './database.json': Permission denied
mv: cannot move 'cms/configs/options.json' to './options.json': Permission denied
mv: cannot move 'cms/configs/analytics.json' to './analytics.json': Permission denied
mv: cannot move 'cms/sql/patchs.json' to './patchs.json': Permission denied
mv: cannot move 'cms/public/uploads' to './uploads': Permission denied
mv: cannot move 'cms/node_modules' to './node_modules': Permission denied

И я помещаю объявление crontab, используя: sudo crontab -u mywebuser -e

Если я выполняю сценарий без crontab с использованием «sudo myscript.sh», все работает как ожидалось.

0
задан 11 November 2020 в 00:38
2 ответа

해당 사용자가 실행하는 시스템 작업 파일을 설치합니다. 예를 들어 사용자가 crontab 명령을 사용하는 대신 /etc/cron.d/web .

5 4 * * * mywebuser /opt/thing/myscript.sh

당신의 crond가 이것을 지원한다고 가정하면 Vixie가 지원합니다.

장점은 crond는 이제 귀하가 아닌 올바른 사용자가되는 책임이 있습니다. 즉, sudo 가 작동하도록 구성 및 환경을 정의 할 필요가 없습니다.

원하는 시간, 사용자 및 스크립트로 대체하십시오. 그리고 파일에이 사용자가 관리 할 수있는 올바른 권한이 있는지 확인하십시오.

0
ответ дан 4 January 2021 в 09:52
sudo myscript.sh

( sudo -u username 로 정의 된 대체 사용자가 없음)은 기본적으로 스크립트를 루트로 실행합니다.

sudo crontab -u mywebuser -e

반면에 cron 작업을 설정합니다. 루트가 아니라 사용자 "mywebuser"의 훨씬 더 제한된 권한으로 실행하려면 ...

이 사용자는 루트 사용자와 같은 다른 사용자가 소유 한 파일을 수정할 수 없습니다 ....

파일 및 디렉토리 소유권 및 권한 수정

0
ответ дан 4 January 2021 в 09:52

Теги

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