首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存在特定文件夹中时,将所有者更改为文件

问保存在特定文件夹中时,将所有者更改为文件
EN

Unix & Linux用户
提问于 2020-01-11 11:42:18
回答 1查看 481关注 0票数 0

我有一个NAS,里面有我家每个成员的目录。

我的用户名,是每个成员的组的成员。所以我可以访问所有用户的文件夹。

我希望,当我放置一个文件,在一个用户的目录中,该文件从父目录取得所有权。或者获得特定的许可。

我妻子的目录是"zoe_folder“,有所有权,zoe:zoe和权限rwxrwx-。

例如,当我以根用户身份运行妻子目录(或子目录)中的命令touch file.txt时,file.txt具有所有权根: root和权限rw-r-r-。我希望拥有zoe:zoe (或者作为解决方案的权限rw-)。

当然,没有运行任何命令chmod,chown。这是一个NAS和客户端PC是Windows。我不能每次登录NAS与控制台和更改权限。

有什么想法吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-01-11 14:33:59

我想你要找的是:

  1. 在每个用户的目录上使用setgid,以便该目录中的每个新文件与目录具有相同的组;
  2. 将系统的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/中的目录设置默认权限的一步一步的教程。

请确认情况是否属实。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/561555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档