すべてのユーザーに対して完全な権限を持っているが、削除できないファイルを作成することは可能ですか?


15

できればsudoを使用しませんか?


2
神、根、違いは何ですか? ars.userfriendly.org/cartoons/?id=19981111 実際問題として、rootでさえ後で削除できなかったファイルは、マルウェア作者の夢です。
ダン・ニーリー

@DanNeely Plusのフォーマットもファイルを削除する形式であることに同意します;)
Rinzwind

回答:


3

試してください:

chattr +i filename

ただし、これを行うと、rootユーザーでもファイルを削除できないようになります-慎重に使用してください。


5
実行touch test && chattr +i testするとエラーがスローされます。chattr: Operation not permitted while setting flags on test。これが必要sudoです。その隣:ファイルを削除することはまだ可能です:sudo chattr -i test && rm test動作します。
リンツウィンド

23

いいえ、これは不可能です。通常のユーザーがファイルを削除することは不可能です:確かに。

  1. 必要になるだろう sudoユーザーがファイルを削除できないようにするます。管理者は、常にファイルを削除できます。

  2. sudo chattr +i test削除を防ぐことができますが、必要sudoです。単純なsudo chattr -i testファイルを削除することが可能になります。管理者以外のユーザーは使用できませんchattr

そして...単にリブートしてレスキューモードに入ると、その人はそのファイルを削除できるようになります。ファイルを削除できない方法があると、セキュリティ上のリスクになります。


8

少し粗雑ですが、これは近いです-ディレクトリの書き込みアクセス権を削除すると、その中のファイルは削除できません。そしてsudo、あなたがそれを所有している場合は必要ありません:

=^_^= izkata@izein:~$ mkdir test
=^_^= izkata@izein:~$ touch test/delme
=^_^= izkata@izein:~$ chmod a-w test
=^_^= izkata@izein:~$ echo 'Hello' > test/delme 
=^_^= izkata@izein:~$ cat test/delme 
Hello
=^_^= izkata@izein:~$ rm test/delme 
rm: cannot remove `test/delme': Permission denied

したがって、必要に応じてファイル自体にアクセス許可を設定できます。

また、@ Rinzwindが述べたように、それを回避する方法は確かにたくさんあります。


これは、OPがまさに望んでいたように見えます。(なぜ彼らがそれを望んでいたの、私にはわかりません。)ユーザーはファイルの読み取り、変更、実行はできますが、リンクを解除(削除)することはできません。
エリアケイガン14年

8

ファイルを削除するには、ファイルがリンクされているすべてのディレクトリへの書き込み権限が必要です。1つのディレクトリからリンクを解除するには、そのディレクトリへの書き込み権限が必要です。

そのため、ファイルに書き込み許可(または所有権さえ)を与えるが、そのファイルがリンクされているディレクトリには許可しない限り、そのファイルは削除できません。

それを実現する最善の方法は、そのファイルを、rootが所有するディレクトリにリンクし、誰も書き込みできないようにすることです。代わりにあなたが所有することもできます。つまり、あなたとrootの両方がそれを削除できます。

これにより、他のユーザーはそのファイルを他のディレクトリにリンクし、その後そこからリンクを解除できますが、自分のディレクトリからリンクを解除できるため、ファイルを削除することはできません。

これが完全に機能するためには、ファイルへのすべてのパスコンポーネントの書き込み許可を制御する必要があることに注意してください。たとえば、ファイルが/a/b/the-fileあり、あなたが/a/b誰からも書き込み可能ではないが、誰もが書き込みアクセス権を持っている場合/a、彼らは別の名前に変更/a/bし、自分自身/a/bを再作成して/a/b/the-fileそこに自分自身を作成できるためです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.