フォルダの内容を上書きしないように保護する

フォルダの内容を上書きしないように保護する

フォルダーの内容を保護する方法 (ACL を使用) はありますか? ユーザーはフォルダー内にファイルを作成する必要がありますが、上書き/編集/削除することはできません。これは可能ですか?

答え1

ディレクトリを監視し、ディレクトリにコピーされた各新しいファイルの所有権を変更するなどの変更を行うために使用できますinotifywait。Debian ベースのディストリビューションでは、次のようにソフトウェアをインストールしますapt-get install inotify-tools

次のようなスクリプトを作成します/usr/local/sbin/inbox.sh

#!/usr/bin/env bash
inotifywait -m -e create "/path/to/directory" |
while read path event file; do
    if [ "$event" = "CREATE" ]; then
        chown root:root "$path$file"
    fi
done

スクリプトに実行権限 ( chmod 0700 /usr/local/sbin/inbox.sh) を与えます。次に、起動時に、/etc/rc.localまたは適切な RC ファイルからスクリプトを実行します/usr/local/sbin/inbox.sh &

によるマニュアルは、-m無期限に監視し、-e特定のイベントを監視します。ループ内では、ディレクトリの作成を示すwhileなどのイベントを受け取る可能性があります。ディレクトリは質問の対象ではないため、ステートメントには、イベント で表される新しいファイルにのみ応答するコマンドが含まれています。変数 from には末尾にスラッシュ文字が付いているため、 とは、2 つの間にスラッシュを指定せずに連結できます。CREATE,ISDIRifCREATEpathinotifywait$path$file

関連情報