"cron"에 사용되는 "-p"는 무엇입니까?

"cron"에 사용되는 "-p"는 무엇입니까?

존재하다크론 맨페이지(절친한 친구)

-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

CAVEATSConfidant 매뉴얼 페이지의 일부는 다음과 같이 말합니다 cron(8)(강조).

모든 crontab 파일은 일반 파일이거나 일반 파일에 대한 심볼릭 링크여야 하며 소유자 외에는 누구도 실행하거나 쓸 수 없습니다. 이 요구 사항은 -p 옵션을 사용하여 무시할 수 있습니다. crond 명령줄에서.

그래서가장 눈에 띄는 위치는 아니지만 실제로 매뉴얼 페이지에 문서화되어 있습니다.

답변2

좋은 질문. 매뉴얼 페이지에는 문서화되어 있지 않은 것 같습니다. 소스 코드를 보면 -pPermitAnyCrontab이 설정되어 있음을 알 수 있습니다.https://github.com/cronie-crond/cronie/blob/master/src/cron.c#L703

        case 'p':
            PermitAnyCrontab = 1;

차례로 사용https://github.com/cronie-crond/cronie/blob/40b7164227a17058afb4f3d837ebb3263943e2e6/src/database.c#L89

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)

관련 정보