ディレクトリを読み取り専用にすることなくディレクトリが削除されるのを防ぎますか?

ディレクトリを読み取り専用にすることなくディレクトリが削除されるのを防ぎますか?

特定のディレクトリに対する編集権限を持ちたいのですが、誤ってrm権限を取得したくありません。rm -rf *以前に誤って間違ったディレクトリに入ったことがあり、それを安全に証明したかったのです。

読み取り専用にすることができることを知っていますが、それでも編集可能である必要があり、ディレクトリ全体を簡単に削除しないでください。

答え1

最善の解決策は、おそらく固定ビットを設定し、フォルダが他のユーザーが所有している(ルートが良い選択かもしれません)、ユーザーが編集できることを確認することです。

https://www.cbtnuggets.com/blog/technology/system-admin/linux-file-permissions-understanding-setuid-setgid-and-the-sticky-bit

答え2

あなたは変更することができますファイル属性防止(削除)したいrmファイルのs(フラグ)です。たとえば、作成して実験するtestfileために実際のファイルをコピーしたい場合があります。testfile

$ cp realfile testfile 
$ ls -l testfile
-rw-r--r-- 1 pi pi 14 Oct 17 07:10 testfile
$

設定追加プロパティ存在するtestfile。このモードではデータを追加(追加)できますが、testfile削除(rm)はできず、ファイル内の既存のデータは変更されません。

$ sudo chattr =a testfile 
$ ls -l testfile
-rw-r--r-- 1 pi pi 14 Oct 17 07:10 testfile 

#   note testfile permissions unchanged
#   try to delete (rm)...

$ rm testfile
rm: cannot remove 'testfile': Operation not permitted 
$ sudo rm testfile 
rm: cannot remove 'testfile': Operation not permitted 

エディタで開いてみるとtestfile変更(追加、削除)は可能ですがtestfileファイル名で保存することはできないことがわかります。しかし、我々はエディタを追加モード、必要に応じて追加し、そのtestfile名前で保存します。

nanoエディタを例として開き、数行testfileのテキストを追加します。

  • 開始を使用ctrl-Xして終了し、「Y」を使用してファイルの保存を確認します。

  • プロンプトが表示されたら、File Name to Write: testfileキーボードでオプションを入力します(キーボードに応じて、またはにすることができますが、明確な手順についてはman nanoを参照してください)。M_actrl-aesc-a

  • 正しいキーボードシーケンスを入力すると、プロンプトがFROM:File Name to Write: testfileTO:に変わりますFile Name to Append to: testfile。このキーを押すと、enter追加操作が正常に完了します。

  • cat testfile- または別の方法で正常に添付されていることを確認してください。

  • 到着追加属性の削除

$ sudo chattr -a testfile 
$ rm testfile
$
# testfile is deleted as its immunity is gone :) 
#
# of course the file can also be "fully edited" upon removal of the append attribute;
# just make your edits & then restore the append attribute, or use the -i attribute

man chattrオプションと詳細については、リソースを参照してください。

関連情報