在linux上只创建文件权限

时间:2013-08-22 10:20:34

标签: linux file file-permissions

我想在linux下创建一个目录(或者安装一个例如:nfs),其中:

  1. 每个用户都可以创建文件
  2. 但只有root用户可以修改创建的文件(覆盖,删除或移动它们)
  3. 如何做到这一点,以及这些解决方案的安全性如何? (例如:sentinel script,umask等?)

    谢谢, krisy

2 个答案:

答案 0 :(得分:0)

如果创建该文件的用户也可以更改它们,那么您可以使用粘滞位。如果你给chmod一个4位数的参数,这是第一个数字。

su - 
mkdir stickydir
chmod 1775 stickydir
chown user.group stickydir

现在组的所有成员都可以写入dir,但只有创建文件或root的用户才能更改文件

su - user1 #member of group
touch stickydir/stickytest-user1 #ok
su - user2 #member of group
touch stickydir/stickytest-user2 #ok
rm stickydir/stickytest-user1 #permission denied
rm stickydir/stickytest-user2 #ok

答案 1 :(得分:0)

我会尝试使用inotifywait创建后更改文件权限。这个(未经测试的)片段可能会有所帮助,但绝对不是很优雅。它将root设置为/ path / to / dir中所有已创建文件的所有者,并删除组和其他人的写入权限。

while true; \
    do inotifywait -e create /path/to/dir/ && \
    chown root /path/to/dir/* && \
    chmod g-wo-w /path/to/dir/*; \
done

希望有所帮助 *乔斯特