
a
権限 777 を持つルート ユーザーとしてディレクトリを作成すると、デフォルト ユーザーとしてログインしているときは削除できますが、ユーザーとしてログインしているときはb
削除できません。権限が拒否されたと表示されます。
私の質問は、なぜデフォルト ユーザーは root によって作成されたフォルダーを削除できるのか、そして他のユーザーは全員 777 権限を持っているにもかかわらず削除できないのかということです。
答え1
ユーザーがディレクトリに対して書き込み権限と実行権限を持っている場合、そのディレクトリ内のファイルやディレクトリの所有権に関係なく、そのディレクトリ内のファイルやディレクトリを削除できます。これは、ディレクトリからファイルやサブディレクトリを削除することは、削除対象ではなくディレクトリに対する変更であるためです。
例: 自分が所有するディレクトリ内に root が所有するディレクトリを作成し、それを削除します。
$ sudo mkdir directory
$ ls -l
total 4
drwxr-xr-x 2 root wheel 512 Nov 25 11:11 directory
$ rmdir directory
$ ls -l
(出力なし)
さて、サブディレクトリがファイルが含まれていますすると、そのディレクトリの権限がより興味深いものになります。
$ sudo mkdir directory
$ sudo touch directory/file
$ rm -rf directory
rm: directory/file: Permission denied
rm: directory: Directory not empty
ここでは、サブディレクトリ内のファイルを削除する権限がないため、サブディレクトリを削除できません。
しかし、権限が に設定されているということは777
、誰でもその中のファイルを削除できるということです。
$ sudo chmod 777 directory
$ rm -rf directory
(エラーなし)
私のシステム上の他のユーザーは、私が作業しているディレクトリへの書き込み権限がないため、これを実行できません。できたまだ削除するコンテンツルート所有のサブディレクトリの、そのディレクトリにアクセスできる場合(ユーザーはそのディレクトリに対する実行権限が必要であり、すべての親ディレクトリ)。