web-dev-qa-db-ja.com

Linux – 777権限で所有ファイルを削除できない

rf -Rfコマンドを使用して削除できないファイルがいくつかあります。私はそれらのファイルの所有者であり、それらのファイルに割り当てられたグループは、ユーザーが所属するグループでもあります。さらに奇妙なのは、コンテンツを編集したり、ファイルのアクセス許可を変更したりできますが、移動したり、それらを削除します。

ls -al
total 12
dr-xr-xr-x 3 rayell pg1083760 4096 2010-10-10 10:00 .
drwxr-xr-x 3 rayell pg1083760 4096 2011-09-02 04:33 ..
-rwxrwxrwx 1 rayell pg1083760    0 2011-09-02 06:38 default.settings.php
drwxrwxrwx 2 rayell pg1083760 4096 2011-09-02 04:33 files
-rwxrwxrwx 1 rayell pg1083760    0 2011-09-02 06:38 settings.php


rm -Rf *
rm: cannot remove `default.settings.php': Permission denied
rm: cannot remove directory `files': Permission denied
rm: cannot remove `settings.php': Permission denied

誰が何が起こっているのか教えてもらえますか?

32
RaYell

1つのファイルを削除するには、このファイルのを含むディレクトリ¹に対する書き込み権限が必要です。

ここでの権限はdr-xr-xr-x 3 rayell pg1083760 4096 2010-10-10 10:00 .したがって、(root以外の)誰もこのディレクトリ内のファイルを削除できません。所有者は最初にchmodを使用する必要があります。


1.それにはかなりの理由があります。 rmを使用してファイルを「削除」すると、実際にはディレクトリからnlinkしようとします(ハードリンクされたコピーは削除されません)。

63

別の可能な質問は属性です

lsattr file

このコマンドは、ファイルの属性を表示し、「i」属性のファイルは変更(および削除)できません

ファイルの属性を確認し、属性が設定されている場合は「i」属性を削除してください

chattr -i file
1
LJP-TW

私も同じ問題を抱えていて、chmodだけではうまくいきませんでした。まず、削除したいファイルの所有者(ユーザーとグループ)を変更する必要がありました。

Sudo chown -hR root:admin dir_to_delete

説明:

  • Sudo:適切な権限があることを確認してください
  • chown:ファイルの所有者を変更するLinuxコマンド
  • -hR:ディレクトリとすべてのサブディレクトリの所有者を変更します。私はそれを見つけました ここ
  • root:新しいユーザーの名前
  • admin:新しいグループの名前

私はすでに修飾子を777に変更しました。それが必要かどうかわかりません。

1

その理由は、親ディレクトリにchmod 705またはそのようなもの。次のコマンドで親ディレクトリをchmodできます。

chmod -R 777 directory_name

この後、そのディレクトリとそこに含まれるファイルを削除できます。

0
Tomagen team