繁体   English   中英

如何自动更改目录中每个文件的所有权

[英]How to automatically change the ownership of every files in a directory

有一个外部服务器将一些文件存放在我计算机的文件夹中。 我需要自动更改在该文件夹中创建的每个文件的用户所有权。

我看到很多答案说我可以通过 setfacl 更改 GROUP 所有权(根据我的研究,不可能通过 setfacl 更改 USER 所有权)。

在这种情况下,我不能,因为用户 A(不是 root)拥有一个脚本,该脚本将修改用户 B 拥有的这个存放文件,而您只能修改您拥有的文件。

而不是这个(在脚本内):

chmod 777 /folder/file.txt

我试过这个:

sudo chmod 777 /folder/file.txt

但是要求输入密码,BAM!

你对如何处理这个问题有什么想法吗?

我错过了什么吗?

我不确定你想达到什么目的,所以这里有一些建议:

  • 如果目标只是让文件具有特定的权限设置,并且所有权更改是次要的,您可以在源计算机上正确设置权限,然后使用保留权限的传输方法(scp -p 或类似的)

  • 请注意,由A拥有的脚本仍然可以被B运行,如果A已正确设置权限(组和其他可执行位)。 当 B 运行 A 的脚本时,它以 B 的权限运行,因此更改 B 文件的权限位将起作用

  • 如果必须更改所有权,您可以将文件传输到 B,确保 A 具有读取权限(见上文),然后让 A 使用 cp 命令将文件复制到 A 自己的目录。 该副本将由 A 拥有,因此 A 可以更改副本的权限。 之后,运行一些常规进程来清理 B 的目录以节省空间(如果这是一个问题)

  • 或者,您可以让源计算机上的 B 登录到接收计算机上 A 的帐户,然后该文件最终归 A 所有。 如果您不想将 A 的密码提供给 B,则可以使用 ssh 证书执行此操作。 但是当然这还有其他的安全隐患,所以上面的cp方法更安全

  • 最后,在 unix 上,使文件可写给“其他”通常不是一个好主意,通常甚至不是“组”,因此 775 或 755 的权限设置更安全和更受欢迎。 否则,同一台计算机上的任何人都可以修改该文件或使其成为空文件。 即使在私人计算机上,这也是一种很好的做法,因为这些文件中的一个迟早会被复制到多用户系统中,并且没有人记得检查权限

希望其中一些提示有用。

一种方法可能是在父目录上使用组粘滞位。 这可确保在创建文件时为其所在的目录赋予相同的组所有权。

在大多数情况下,这已经足够了,因为您可以确保该组是文件创建者和用户都是其成员的组,因此他们都可以访问文件。

您可以粘贴目录的用户 ID,但这在组织中几乎总是错误的做法,因为它只会让那个人离开并且目录溢出。

chown owner:group directory -R

例子:

chown root:root sysadmin -R

尝试这个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM