存在するクローンマンページ(親友)
-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
Ubuntuのマンページで見つかりませんでした。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)