Unix 将所有文件复制到我拥有的目录中

Unix 将所有文件复制到我拥有的目录中

我正在与一个团队合作使用一台超级计算机,我们将所有项目文件存储在我的主目录中,问题是如果我需要管理某些文件,我无法管理,因为他们拥有这些文件。我需要一种方法,让我的主文件夹中的目录中的所有文件都归我所有。其他人正在使用 SFTP 上传文件

答案1

您可以更改所有者,chown但这不是一个好的解决方案,因为您必须始终这样做。

我将使用目录的 SGID 位来解决您的任务。

您可以将此位设置为用户上传文件的目录,然后这些文件将以您的组作为组所有者。

$ mkdir -p ~/incoming/
$ chmod o+wt ~/incoming/   # making the directory world writeable; setting sticky bit to avoid deletion of files
$ chmod g+s ~/incoming/    # setting setgid for the directory

并且不要忘记为 ftp/sftp 服务器设置 umask 002。

对于 SFTP 服务器,您可以在 中执行此操作sshd_config。用以下方式重写 sftp-server 行:

Subsystem sftp /usr/lib/openssh/sftp-server -u 022

答案2

以 root 身份运行chown username:group -R *并替换您的姓名和组。

现在他们当然可能无法编辑它们,因此将它们添加到您的组并授予其组可编辑权限。(chmod xyz -R *)并用适当的权限替换“xyz”。

答案3

如果您只是需要能够编辑某个目录中的文件,而其他人拥有这些文件的所有权,那么您可以创建一个组并向该目录添加一些模式。(替换folder为您的主目录的路径):

  1. 创建一个群组(如果您还没有群组),您和您一起工作的其他人都属于这个群组。请参阅群组添加命令。然后使用以下命令将所有人添加到该组用户模式。您可以通过查看文件来验证谁属于该组/etc/group

  2. 更改文件夹的默认掩码,以便组可以读/写。

    setfacl -d -m g::rwx folder
    
  3. 创建一个 setgid,以便当新文件放置在此目录中时,它们属于该组:

    chmod g+ws folder
    
  4. 现在设置组和所有权:

    chown -R youruser:thegroupname folder
    chmod -R g+w folder
    

如果你真的想强制所有文件都归你所有,你需要让他们放置这些文件的机制将所有权更改为你,无论是 ftp 还是 samba 等。否则,你可以使用文件监视程序,例如同步监视文件夹并在出现新文件时更改所有权。

相关内容