존재하다크론 맨페이지(절친한 친구)
-p Allows Cron to accept any user set crontables.
나는 데몬이 , 및 에 정의된 cron 작업을 cron
암시적으로 검색하고 실행한다는 것을 이해합니다 ./etc/crontab
/etc/cron.d/*
/var/spool/cron/cronstabs/*
그것은 무엇을 -p
위해 사용됩니까?
cron
위 파일이 아닌 다른 곳에 저장되어 있는 crontab 파일에 정의된 cron 작업을 검색하여 실행하라고 명시적으로 지시하셨나요 ?
또는복사위 위치가 아닌 다른 위치에 crontab 파일을 저장하시겠습니까?
Debian이나 그 파생 제품에 cron 옵션이 있습니까 -p
? -p
우분투 맨 페이지에서 찾지 못했습니다 .cron
감사해요.
답변1
CAVEATS
Confidant 매뉴얼 페이지의 일부는 다음과 같이 말합니다 cron(8)
(강조).
모든 crontab 파일은 일반 파일이거나 일반 파일에 대한 심볼릭 링크여야 하며 소유자 외에는 누구도 실행하거나 쓸 수 없습니다. 이 요구 사항은 -p 옵션을 사용하여 무시할 수 있습니다. crond 명령줄에서.
그래서예가장 눈에 띄는 위치는 아니지만 실제로 매뉴얼 페이지에 문서화되어 있습니다.
답변2
좋은 질문. 매뉴얼 페이지에는 문서화되어 있지 않은 것 같습니다. 소스 코드를 보면 -p
PermitAnyCrontab이 설정되어 있음을 알 수 있습니다.https://github.com/cronie-crond/cronie/blob/master/src/cron.c#L703
case 'p':
PermitAnyCrontab = 1;
crontab 파일의 상태에 대해 덜 까다롭습니다 cron
(비정규 파일일 수 있고, 다른 소유자를 가질 수 있으며, 400이 아닌 모드를 가질 수 있고, 1이 아닌 링크 수를 가질 수 있음).
if (PermitAnyCrontab == 0) {
if (!S_ISREG(statbuf.st_mode)) {
log_it(uname, pid, "NOT REGULAR", tabname, 0);
close(crontab_fd);
return (-1);
}
if ((statbuf.st_mode & 07533) != 0400) {
log_it(uname, pid, "BAD FILE MODE", tabname, 0);
close(crontab_fd);
return (-1);
}
if (statbuf.st_uid != ROOT_UID && (pw == NULL ||
statbuf.st_uid != pw->pw_uid ||
strcmp(uname, pw->pw_name) != 0)) {
log_it(uname, pid, "WRONG FILE OWNER", tabname, 0);
close(crontab_fd);
return (-1);
}
if (pw && statbuf.st_nlink != 1) {
log_it(uname, pid, "BAD LINK COUNT", tabname, 0);
close(crontab_fd);
return (-1);
}
}
cronie에는 분명히 존재하지만 Vixie Cron에는 그러한 기능이 없습니다(https://github.com/svagner/vixie-cron)