我有一个NAS,里面有我家每个成员的目录。
我的用户名,是每个成员的组的成员。所以我可以访问所有用户的文件夹。
我希望,当我放置一个文件,在一个用户的目录中,该文件从父目录取得所有权。或者获得特定的许可。
我妻子的目录是"zoe_folder“,有所有权,zoe:zoe和权限rwxrwx-。
例如,当我以根用户身份运行妻子目录(或子目录)中的命令touch file.txt时,file.txt具有所有权根: root和权限rw-r-r-。我希望拥有zoe:zoe (或者作为解决方案的权限rw-)。
当然,没有运行任何命令chmod,chown。这是一个NAS和客户端PC是Windows。我不能每次登录NAS与控制台和更改权限。
有什么想法吗?
发布于 2020-01-11 14:33:59
我想你要找的是:
umask设置为0002,因为它似乎是0022。umask从默认权限(目录为0777,文件为0666 )中删除现有权限。使用新设置,文件的默认权限将从0644更改为0664,目录的默认权限将从0755更改为0775。我对你给出的细节的理解是,它将适用于你的系统。要在所有子目录上放置setgid,请使用以下find命令,但请确保您的起始目录正好位于用户的directories__之上,这样一个简单的ls将列出所有子目录,因为使用错误的启动目录可能会导致一些痛苦,从而逆转已经完成的所有操作:
find ./ -type d -mindepth 1 -maxdepth 1 -exec chmod --preserve-root g+s '{}' \;
给定的选项执行以下操作:
-type d返回所有文件类型的“目录”;
-mindepth 1防止列出起始目录,这样它的权限就不会改变;
-maxdepth 1列出了第一级子目录,但没有深入到它们自己的子目录中;
-exec对通过测试的每一项执行以下命令,这是“{}”的意思;以及
--preserve-root是chmod中的一种保护,以防止权限更改意外地应用于根目录(以及潜在的整个文件系统)。
如果您不确定什么会受到影响,只需运行find命令而不使用-exec参数,如下所示:
find ./ -type d -mindepth 1 -maxdepth 1,它将给出传递给与-exec参数一起使用的任何命令的每个文件的列表。
通过一次小小的搜索,我发现这个问题(部分)可能已经在这里得到了回答:
接受的答案是关于如何为https://www.linuxquestions.org/questions/linux-desktop-74/applying-default-permissions-for-newly-created-files-within-a-specific-folder-605129/中的目录设置默认权限的一步一步的教程。
请确认情况是否属实。
https://unix.stackexchange.com/questions/561555
复制相似问题