我有一个目录
/var/new_share/KRA2017/Prateek
与这些内容
-rwx------ 1 superadmin superadmin 0 Feb 16 15:14 file1.txt*
-rwx------ 1 superadmin superadmin 0 Feb 16 15:14 file2.txt*
-rwx------ 1 superadmin superadmin 0 Feb 16 15:15 file3.txt*
-rwx------ 1 superadmin superadmin 0 Feb 16 15:15 file4.txt*
在
/var/new_share/KRA2017/
目录的权限和所有权/var/new_share/KRA2017/Prateek
是
dr-xrwx--- 2 prateekkaien superadmin 4096 Feb 16 15:15 Prateek/
即组所有者只能写入,用户只能读取和执行。
每当用户写入文件时,superadmin
文件的用户和组所有者都会成为超级管理员,如下所示。file1.txt file2.txt file3.txt file4.txt
由用户编写superadmin
。
我希望文件的用户所有者坚持使用具有相同 rx 权限的 prateekkaien,而组所有者是具有 rwx 权限的超级管理员,就像其父目录一样。
这怎么可能?
基本上我想要的只是让文件继承父目录的所有者、组和权限。
答案1
在 Unix 上,文件的所有者是创建该文件的用户。
有几个问题已经回答了这个问题并解释了原因:
答案2
您正在尝试强制执行r-x
对所有者用户的访问prateekkaien
以及rwx
对所有者组的访问superadmin
。这是行不通的prateekkaien
,因为作为文件所有者,拥有对其的完全权限,并且它可以简单地执行 achmod u+r
来获得对该文件的写访问权限。
您可以做的是在目录上设置 SGID 位,如 @dirkt 和 @Murphy 评论的那样,因此所有新创建的文件都将具有superadmin
所有者组。