0

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

  1. 每个用户都可以创建文件
  2. 但只有 root 用户可以修改创建的文件(覆盖、删除或移动它们)

如何做到这一点,这些解决方案的安全性如何?(例如:sentinel script、umask等?)

谢谢,克里斯

4

2 回答 2

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

希望对您有所帮助 *jost

于 2013-08-22T10:51:35.163 回答
0

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

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

现在组的所有成员都可以写入目录,但只有创建文件的用户或 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
于 2013-08-22T10:43:53.330 回答