777権限を持つルートとしてディレクトリを作成すると、デフォルトユーザーとしてログインすると削除できますが、ユーザーa
としてb
ログインすると削除できません。表示権限が拒否されました。
私の質問は、デフォルトのユーザーがrootによって作成されたフォルダを削除できますが、誰もが777権限を持っているため、他のユーザーは削除できない理由です。
答え1
ユーザーがディレクトリへの書き込みおよび実行権限を持っている場合は、所有権に関係なくその中にあるすべてのファイルまたはディレクトリを削除できます。ディレクトリからファイルまたはサブディレクトリを削除することは、削除された内容ではなくディレクトリを変更するためです。
例:自分が所有しているディレクトリ内にルート所有ディレクトリを作成して削除します。
$ 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
(エラーなし)
私のシステムの他のユーザーは、私が作業しているディレクトリに書き込み権限がないため、まだこれを行うことはできません。できるまたは削除してくださいコンテンツルートが所有するサブディレクトリであるディレクトリへのアクセス権がある場合(ユーザーにはディレクトリに対する実行権限が必要です。)すべての親ディレクトリ)。