次の権限を持つファイルがあります。
-rwSr-s---. 1 1634630331 1818884080 118784 Jun 29 1970 DailyUpdateClass.class
rootログインを使用してファイルを削除しようとするとエラーが発生します。
rm: cannot remove ‘model/DailyUpdateClass.class’: Operation not permitted
所有権を変更したり他の操作を実行したりすることはできません。
に投稿しましたスタックオーバーフローいくつか試しましたが、これまで何も役に立ちませんでした。
誰かがUnix Stack Exchangeでこれを試してみることを提案して助けを求めました。
答え1
さまざまな可能性:
- ファイル権限行の末尾のポイントは、ルートのオーバーライドを防ぐための
-rwSr-s---.
拡張権限、SE Linux(確認を含むls -lZ
)、またはACLスタイルの権限(確認を含む)を表します。getfacl
- ファイルが変更不可能になりました
chattr
。ファイルシステムのプロパティを確認してください。lsattr
- ファイルは、
root_squash
リモートrootユーザーを権限のないアカウントに再マップするオプションを使用してエクスポートされたNFSファイルシステムにあります。実際のファイル所有者としてコマンドを実行してくださいrm
。sudo -u <file_owner> rm filename
- ファイルは読み取り専用ファイルシステムにあります。
mount
次のコマンドを使用して確認するか、/proc/mounts
proc
IIRCでは、カーネル設定(ファイルシステム内のファイルなど)を表す特別なデバイスエントリを削除することはできませんsysfs
。そうですか?
答え2
ファイルにimmutable
拡張属性セットがあるため削除できません。
lsattr
ファイルの拡張属性を返します。
$ lsattr model/DailyUpdateClass.class
-u-Diad--j------ DailyUpdateClass.class
-u-Diad--j
すべての文字()を復号化する必要があります。
のマニュアルページでlsattr
見るように教えてくれます。マニュアルページforchattr
は属性の説明を拡張するために使用されます。ここに関連項目をリストしました。
u
この属性が設定されたファイルが削除されると、その内容が保存されます。これにより、ユーザーは削除解除を要求できます。注:この記事の最後にあるバグと制限事項のセクションを必ずお読みください。プロパティが設定されているディレクトリが変更されると、変更はディスクに同期的に書き込まれます。これは、ファイルサブセットにマウントオプションが適用されるのと
D
同じです。dirsync
一つはD
少し心配です。明らかにディレクトリに固有ですが、ファイルがあります。
この属性を持つファイルは
i
変更できません。削除したり名前を変更したり、ファイルへのリンクを作成したり、ファイルにデータを書き込めません。スーパーユーザーまたはCAP_LINUX_IMMUTABLE機能を持つプロセスのみがこのプロパティを設定または消去できます。この属性が設定されているファイルは、
a
追加モードで書き込み用にのみ開くことができます。スーパーユーザーまたはこの機能を持つプロセスのみがこのプロパティを設定またはCAP_LINUX_IMMUTABLE
消去できます。この属性が設定されているファイルは、dump(8)プログラムが実行されたときのバックアップの対象では
d
ありません。または、オプションを使用してファイルシステムをマウントすると、このプロパティを持つファイルはファイル
j
自体に書き込む前にすべてのデータをext3またはext4ログに書き込みます。このオプションを使用してファイルシステムをマウントすると、すべてのファイルデータが記録され、このプロパティは適用されません。スーパーユーザーまたはこの機能を持つプロセスのみがこのプロパティを設定または消去できます。data=ordered
data=writeback
data=journal
CAP_SYS_RESOURCE
これらの問題を解決するには、をchattr
使用して不変属性に関連付けられている属性を削除します。
# chattr -ia model/DailyUpdateClass.class