我的服务器在家里使用rsync备份文件到我的VPS,但我有一个问题,为上传的文件设置组属性。因为rsync将数据上载到一个文件夹,该文件夹也可以从我的FTP用户访问,所以我需要他们拥有ftpgroup组,否则我无法通过FTP下载或修改文件。
我的rsync看起来如下:
rsync -rtuvz --chmod=770 --owner --group --chown=user:ftpgroup /var/ftp/user@home.domain.com/files/rsync_backup/ user@domain.com:"/var/ftp/user@domain.com/files/rsync_backup/"使用rsync工具的--chown标志不会改变任何东西,文件总是有上传文件的用户组。
我尝试通过SSH设置组属性,但显然只有根用户可以使用chown和chgrp,但是我不想编辑sudoers文件并让用户完全访问chown,这显然是一个安全隐患。
是否有一种方法可以授予用户仅对他所拥有的文件更改组的权限?
发布于 2019-04-10 12:42:53
来自chown(2)
只有特权进程(Linux:具有CAP_CHOWN功能的进程)才能更改文件的所有者。文件的所有者可以将文件组更改为该所有者是其成员的任何组。
如果user不是组ftpgroup的一部分,则user不能更改为文件或目录的组为ftpgroup。要解决这个问题,可以通过运行以下操作将user添加到组ftpgroup中
usermod -a -G ftpgroup user在服务器上作为root用户。
或者,如果期望/var/ftp/user@domain.com/files/rsync_backup/只包含组ftpgroup所拥有的文件,则可以将/var/ftp/user@domain.com/files/rsync_backup/的所有权更改为ftpgroup,并在目录上设置setgid位。
chown :ftpgroup /var/ftp/user@domain.com/files/rsync_backup/
chmod g+s /var/ftp/user@domain.com/files/rsync_backup/目录上的setgid位导致该目录中所有新创建的文件都具有目录的组所有权,并且与目录相似,但也会设置目录上的setgid位。如果/var/ftp/user@domain.com/files/rsync_backup/中存在任何现有文件和目录,则必须手动更改所有权,并在目录上设置setgid位。
https://unix.stackexchange.com/questions/511642
复制相似问题