我关注的是文件夹
drwxr-xr-x 7 root root 45056 Nov 25 12:39 data
其中包括子目录和文件,全部 755 个,
但是当我在这些目录中创建新文件时它获得权限
-rw-r--r-- 1 root root 0 Nov 28 2013 new
如何使这些目录中的新文件创建无需手动执行 755 我尝试了 chmod g+s 但什么也没发生,
有小费吗
答案1
设置位权限的唯一方法是通过 umask。当创建一个文件时,例如权限为 666(这是八进制),umask 会决定将哪些位翻转为 0。
进一步解释:rwx rwx rwx 分别代表用户组世界。如果每个位都设置为 1(111 111 111),则为 0777(八进制)。0666 是 110:110:110 或 rw_rw_rw。希望这说得通。
默认情况下,umask 为 022 -(八进制 022)。这表示哪些位应保留(0),哪些位不保留(1)。(这样有点不直观)。
以 666 创建的文件为例: 6 & ~0 = 6 6 & ~2 = 4 6 & ~2 = 4
因此创建的文件将具有权限 644 (rw-r--r--)。
请注意,umask 的作用是屏蔽文件创建调用中给出的位。如果调用需要 666,则除非手动执行“chmod a+x file”,否则无法将其设置为 755。
此外,g+s(设置组 suid)的作用是设置拥有组,而不是位权限。Windows 在这方面(ACL)更加细粒度,但有文件系统扩展可以向 Linux 文件系统添加 ACL 权限。