Linux では書き込み権限があるようですが、このファイルを削除できません。すでに確認しましたが、すべての親ディレクトリで実行権限があります。なぜこのようなことが起こるのか、何か考えはありますか?:
deployer@my-web:/usr/local/bin$ ls -la
total 10656
drwxr-xr-x 2 root root 4096 Feb 11 21:25 .
drwxr-xr-x 10 root root 4096 Feb 3 13:21 ..
-rwxr-xr-x 1 deployer deployer 1836198 Mar 18 19:05 composer
deployer@my-web:/usr/local/bin$ rm composer
rm: cannot remove ‘composer’: Permission denied
答え1
簡単に答えると、ファイルに対する権限だけでなく、ファイルを保持するディレクトリに対する権限も必要になります。従来の UNIX では、ディレクトリは実際には特別な種類のファイルであり、その中にファイルへのポインターを保持するファイルです。そのため、ディレクトリに対する書き込み (w) アクセスが必要になります。
この場合、/usr/local/bin の権限を変更する (または権限を持つ所有者に変更してもらう) 必要があります。
答え2
ディレクトリの権限は、ファイルの権限とまったく同じではありません。
書き込み権限があれば、ファイルまたはサブディレクトリが別のユーザーによって所有されている場合でも、ユーザーはファイルまたはサブディレクトリを作成、削除、または変更できます。
ディレクトリの場合、同じコマンドが使用されるため、大きな変更はありません。ただし、ディレクトリには通常、新しいユーザーまたはグループに割り当てる必要のあるファイルも含まれているため、'-R' 旗は ' を意味します再帰的' - つまり、すべてのサブディレクトリとその中のファイル:
chown -R user:group dirname