保护覆盖文件夹内容

保护覆盖文件夹内容

有没有办法(使用 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循环内,可以接收诸如 之类的事件CREATE,ISDIR,当然,它指示目录的创建。目录不是问题的目标;因此,该if语句包含一个仅响应新文件的命令,这些新文件用事件 表示CREATE。变量pathfrominotifywait有一个尾部斜杠字符,因此可以连接$path和 ,$file而无需在两者之间指定斜杠。

相关内容