답변:
에 따르면 man crond
주의 사항
모든 crontab 파일은 일반 파일이거나 일반 파일에 대한 심볼릭 링크 여야하며 소유자 이외의 다른 사람이 실행할 수 있거나 쓸 수 없어야합니다. crond 명령 줄에서 -p 옵션을 사용하여이 요구 사항을 무시할 수 있습니다. inotify 지원이 사용 중이면 cron 데몬이 심볼릭 크론 탭의 변경 사항을 자동으로 알 수 없습니다. cron 데몬은 SIGHUP 신호를 수신하여 crontab을 다시로드해야합니다. 이것은 inotify API의 한계입니다.
sendmail이 설치되지 않은 경우 메일 대신 syslog 출력이 사용됩니다.
그것은 나에게서 살아있는 쓰레기를 짜증나게했다. 간단히 말해서 당신은 심볼릭 링크를 사용할 수 있지만, 그렇지 않다면 스위치 regular files or symlinks to a regular file
를 사용해야한다 -p
.
sudo -u www-data crontab -e
www-data 사용자의 crontab에 추가하십시오. 그런 다음 user로 실행됩니다 www-data
. 명시 적 사용자 열은 사용자 crontab에 없기 때문에 제거해야합니다.
etc/cron.
됩니까? 나는 crontab 도구가 작업을 다른 곳에 배치 할 것이라는 인상을 받았습니다.
crontab -e
는이 경우에 원하는 것이 아닙니다. 찾고 있지만 루트가 아닌 사용자로 사용자 crontab을 실행하는 방법을 찾지 못했습니다.
귀하의 Ubuntu 버전에 대한 cron 맨 페이지를 확인하고 싶습니다 (이 포럼에서 Ubuntu를 사용한다고 가정합니다!) :
이 디렉토리의 파일은 루트가 소유해야하고 실행 파일 일 필요는 없으며 (/ etc / crontab과 같은 구성 파일) run-parts (8)에서 사용하는 것과 동일한 명명 규칙을 따라야합니다. 대문자, 소문자, 숫자, 밑줄 및 하이픈으로 만 구성됩니다. 즉, 점을 포함 할 수 없습니다.
Florian이 지적한 것처럼 루트가 아닌 사용자가이 파일을 쓸 수있는 경우 작업이 루트 (파일에서 작업 소유자로 지정된 사람)에 의해 실행되므로 보안상의 문제가됩니다. 따라서
이 디렉토리에는 / etc / crontab에서 사용 된 형식에 따라 작업을 정의하는 모든 파일이 포함될 수 있습니다. 즉, 사용자 cron 스풀과 달리 이러한 파일은 작업 정의에서와 같이 작업을 실행할 사용자 이름을 제공해야합니다.
즉, 명령을 실행하기 전에 사용자 이름을 입력하십시오.
/etc/cron.d/bobsjob
"bob"사용자가 소유 한 파일을 가리키는 경우 cron은 syslog 메시지와 함께 실패합니다WRONG FILE OWNER (/etc/cron.d/bobsjob)
.