特定のディレクトリに対する編集権限を持ちたいのですが、誤ってrm
権限を取得したくありません。rm -rf *
以前に誤って間違ったディレクトリに入ったことがあり、それを安全に証明したかったのです。
読み取り専用にすることができることを知っていますが、それでも編集可能である必要があり、ディレクトリ全体を簡単に削除しないでください。
答え1
最善の解決策は、おそらく固定ビットを設定し、フォルダが他のユーザーが所有している(ルートが良い選択かもしれません)、ユーザーが編集できることを確認することです。
答え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_a
ctrl-a
esc-a
正しいキーボードシーケンスを入力すると、プロンプトがFROM:
File Name to Write: testfile
TO:に変わります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
オプションと詳細については、リソースを参照してください。