我正在使用LAMP Web应用程序,并且某个地方有一个计划的过程,该过程一直shop
在网站的根目录中创建一个文件夹。每次出现这种情况,都会导致与应用程序中的重写规则发生冲突,这不是很好。
在找到令人讨厌的脚本之前,是否有办法防止shop
在根目录中创建任何名为文件夹的文件夹?我知道我可以更改文件夹的权限以防止更改其内容,但是我还没有找到一种方法来防止创建具有特定名称的文件夹。
鉴于创建目录的用户具有足够的权限可以在父目录上进行写入,因此您不能这样做。
相反,您可以利用inotify
Linux内核提供的系统调用系列来监视给定目录中目录的创建(或可选地mv
-ing)shop
,如果已创建(或可选地mv
-ed)rm
该目录。
在这种情况下,您需要的用户空间程序是inotifywait
(随附于inotify-tools
,如果需要,请先安装它)。
假设该目录shop
位于/foo/bar
目录中,让我们设置一个监视/foo/bar/shop
创建的操作,并rm
在创建后立即进行监视:
inotifywait -qme create /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
inotifywait -qme create /foo/bar
手表/foo/bar
目录可能创建的,即手表任何任何文件/目录create
事件
如果创建,则awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
检查文件是否碰巧是目录,并且名称是shop
(/,ISDIR shop$/
),如果是,则rm
目录(system("rm -r -- /foo/bar/shop")
)
您需要以对目录具有写许可权的用户身份运行命令,/foo/bar
以便shop
从目录中删除该命令。
如果您也想监视mv
-ing操作,请同时添加监视moved_to
事件:
inotifywait -qme create,moved_to /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
请注意,如果要查找的文件不是目录,则名为shop
:
inotifywait -qme create /foo/bar | \
awk '$NF == "shop" { system("rm -- /foo/bar/shop") }'
inotifywait -qme create,moved_to /foo/bar | \
awk '$NF == "shop" { system("rm -- /foo/bar/shop") }'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句