$ touch testfile
$ chmod g+w testfile
$ sudo adduser user2 user1
$ stat -c'%a %A' testfile
664 -rw-rw-r--
$ su user2
Password:
$ groups
user2 user1
$ rm testfile
rm: cannot remove `testfile': Permission denied
なくなったものありますか?
答え1
ファイルを削除するとは、変更中であることを意味します。目次ファイル自体ではなくファイルに常駐します。ファイルを削除するには、グループからディレクトリを読み取る必要があります。ファイルの権限は、ファイル自体を変更するためにのみ使用されます。
ファイルシステムがどのように機能するかを考えるまで、最初は混乱する可能性があります。ファイルは単なるinodeであり、ディレクトリはinodeを参照します。削除すると、ディレクトリ内のファイルのinodeへの参照のみが削除されます。したがって、ファイルではなくディレクトリを変更することです。別のディレクトリにあるファイルへのハードリンクを持つことができ、実際にファイル自体を変更しなくても、最初のディレクトリからそのファイルを削除でき、そのファイルは他のディレクトリに存在し続けます。
答え2
システムからのみファイルを削除でき、ファイルが参照されていない場合にのみ可能です。一般ユーザーのみ利用可能解くつまり、ディレクトリからファイルを削除します。ディレクトリからファイルへのリンクを解除するには、ディレクトリへの書き込み権限が必要です。ファイルのリンクを解除してもファイルは変更されないため、ファイルへの書き込み権限は重要ではありません。
答え3
必要なディレクトリからファイルを削除するようですユーザー書き込み権限。許可された回答によると、グループ書き込みとすべての書き込みだけでは不十分です。
両方のコンピュータの両方のファイルシステムでこれをテストしました。
$ mkdir testdir
$ touch testdir/foo
$ chmod u-w testdir
$ chmod o+w testdir
$ ls -ld testdir
dr-xr-xrwx 2 tim all 17 Nov 25 23:08 testdir
$ rm testdir/foo
rm: cannot remove 'testdir/foo': Permission denied
$ chmod g+w testdir
$ rm testdir/foo
rm: cannot remove 'testdir/foo': Permission denied
$ chmod u+w testdir
$ rm testdir/foo