我有一个与 Linux centos 7 盒子中的另一个用户共享的文件夹。即使我已将完整文件夹的权限设置为 777,它仍然会锁定其他用户创建的新文件。
该文件夹是/data文件夹。我如何告诉 linux,“当前 /data 中的所有文件以及 /data 中曾经创建的每个文件应该始终完全可供任何人执行他们想做的任何事情”?
我已经尝试过一些东西,但我是 Linux 新手,所以我不太明白。我知道如何使用 chmod 来更改权限,但即使我对目录本身进行了这些更改,这些更改似乎也不会保留在新文件上。
答案1
您创建的文件的权限由创建时用户的 umask 定义。你可以通过以下方式查看我的umask:
ljm[~]$ umask
0022
用户可以通过以下方式设置他的 umask:
umask 0000
(这有效地使每个文件都可供每个人读取和写入;不要这样做)
一般来说,权限是由文件的所有者决定的。这称为自主访问控制。作为所有者,您可以执行以下操作:
chmod a+rw /data/file
如果您是系统的 root 用户,则可以对所有文件执行此操作。您甚至可以在 root 的 crontab 中添加一行,chmod -R a+rw /data
每分钟左右运行一次。
但是,除非您与计算机的所有其他可能的用户(甚至所有可能访问您的系统的路人或黑客)都是非常好的朋友,否则不要这样做。安全宽松环境中的解决方案可能是:
- 创建一个组来访问
/data
;chown root.datagrp /data
- 创建目录 3777 (chmod 1777 /data)。这样用户就可以删除自己的文件了。但不是其他文件,所有文件都属于该组
datagep
- 为 0002 上的所有用户设置 umask 并将用户添加到
datagrp
并真正阅读 Unix/linux 权限;在 google 中搜索“unix 文件权限 umask 解释”。