Ubuntu 14.04では、ディレクトリ/var/spool/cron
とls -l
は、次の権限を提供します(関係のない列は省略されます)。
drwxrwx--T daemon daemon atjobs
drwxrwx--T daemon daemon atspool
drwx-wx--T root crontab crontabs
実行可能ビットなしでディレクトリにスティッキービットを設定すると、どのような目的に役立ちますか?
実行可能ビットなしでディレクトリにスティッキービットを設定すると、どのような目的に役立ちますか?
drwx-wx--T 2 root crontab 4096 Apr 24 15:00 /var/spool/cron/crontabs/
あなたが見ているものは、Debianでも似ています。ディレクトリdoesには、所有者とグループの実行可能ビットが設定されています。所有者だけにとって、stickyはあまり意味がありません。これは、定義上、ユーザーが1人だけであるためです(そして、所有者はとにかくstickyをオーバーライドすることになります)。しかし、グループにとっては、/tmp
などの誰でも書き込み可能なディレクトリと同じくらい重要です。つまり、通常のユーザーは他のユーザーに属するファイルを削除することができません。
しかし、なぜ誰もがグループcrontab
のメンバーになるのでしょうか?
もちろん、crontabを変更できるようにするためです! Debianのcrontab
はsetgid特権で動作するため、通常のユーザーは自分のUIDとcrontab
のGIDでそのディレクトリにアクセスできます。セットでcrontab
を実行させるよりも少し安全ですuid ユーザーを互いに分離しておくための特権。
-rwxr-sr-x 1ルートcrontab 36008 2015年6月11日/usr/bin/crontab
現在、通常、ディレクトリ内のファイルはそれぞれの所有者によって所有され、名前が付けられています。crontab
がユーザー自身のcrontabの削除のみを許可している場合、問題はありません。このようにファイルのアクセス許可を設定すると、プログラムのバグから保護されますandは、アクセスするユーザーの実際のUIDをnameだけでなく、適切なものにします。