LinuC102の学習において、cronのアクセス制御に関する「/etc/cron.allowと/etc/cron.denyの両方が存在しない場合、crontabを使用できるユーザーは誰か」という問題は混乱しやすいポイントの一つです。教材や解説によって答えが異なるように見えることもあり、試験対策として正確な理解が重要になります。本記事ではその仕様の考え方を整理します。
cronのアクセス制御ファイルの基本仕様
cronにはユーザーのcrontab利用を制御するためのファイルとして「/etc/cron.allow」と「/etc/cron.deny」が用意されています。
これらは明示的に利用可否を制御するための仕組みであり、どちらが存在するかによって挙動が変わります。
例えばcron.allowにユーザー名が記載されていれば、そのユーザーのみがcrontabを使用できます。
両方のファイルが存在しない場合の動作
結論として、/etc/cron.allowも/etc/cron.denyも存在しない場合、多くのLinux標準実装(cronの一般的な仕様)では「全ユーザーがcrontabを使用可能」となります。
これはデフォルト状態では制限が存在しないため、すべてのユーザーに許可される設計になっているためです。
例えば初期状態のLinux環境では特別な制限設定をしない限り誰でもcrontabを作成できます。
rootユーザーのみという解釈が生まれる理由
一部の解説で「rootのみ」とされる理由は、セキュリティポリシーやディストリビューション独自の初期設定を混同しているケースがあるためです。
また厳格な環境ではcronの利用を制限する運用がされることがあり、その結果として誤解が生じやすくなっています。
例えば企業のサーバー環境ではcron.denyをデフォルトで厳しく設定している場合があります。
LinuC試験での正しい考え方
LinuCの出題範囲としては、一般的なcronの標準仕様に基づいて理解することが重要です。
つまり「両方のファイルが存在しない場合は制限がなく、全ユーザーがcrontabを使用可能」という理解が正解となります。
試験ではディストリビューション依存の挙動ではなく、標準的なUNIX/Linux仕様が問われる点に注意が必要です。
補足:優先順位の整理
cron.allowとcron.denyが両方存在する場合はcron.allowが優先されます。
cron.allowが存在すればdenyは無視されるため、制御の優先順位を理解しておくことが重要です。
例えば両方を設定した場合でもallowに記載されたユーザーのみが許可されます。
まとめ
/etc/cron.allowと/etc/cron.denyがどちらも存在しない場合、一般的なLinux仕様ではすべてのユーザーがcrontabを利用できます。
LinuC試験ではこの標準仕様を正しく理解することが求められるため、環境依存の挙動と混同しないことが重要です。


コメント