집에 있는 내 서버는 rsync를 사용하여 내 VPS에 파일을 백업하지만 업로드된 파일의 그룹 속성을 설정하는 데 문제가 있습니다. rsync는 FTP 사용자가 액세스할 수 있는 폴더에 데이터를 업로드하기 때문에 ftpgroup 그룹이 있어야 합니다. 그렇지 않으면 FTP를 통해 파일을 다운로드하거나 수정할 수 없습니다.
내 rsync는 다음과 같습니다
rsync -rtuvz --chmod=770 --owner --group --chown=user:ftpgroup /var/ftp/[email protected]/files/rsync_backup/ [email protected]:"/var/ftp/[email protected]/files/rsync_backup/"
rsync 도구에 대한 --chown 플래그는 아무것도 변경하지 않으며 파일에는 항상 파일을 업로드한 사용자 그룹이 있습니다.
SSH를 통해 그룹 속성을 설정하려고 시도했지만 분명히 루트 사용자만 chown 및 chgrp를 사용할 수 있지만 sudoers 파일을 편집하고 사용자에게 chown에 대한 전체 액세스 권한을 부여하고 싶지 않습니다. 이는 분명히 보안 위험입니다.
사용자에게 자신이 소유한 그룹의 파일만 변경할 수 있는 권한을 부여하는 방법이 있나요?
답변1
~에서chown(2)
권한이 있는 프로세스(Linux: CAP_CHOWN 기능이 있는 프로세스)만 파일 소유자를 변경할 수 있습니다. 파일 소유자는 파일 그룹을 소유자가 속한 그룹으로 변경할 수 있습니다.
user
그룹의 일부가 아닌 경우 그룹 의 파일이나 디렉터리를 변경할 수 없습니다 ftpgroup
. 이 문제를 해결하려면 다음을 실행하여 그룹에 추가할 수 있습니다.user
ftpgroup
user
ftpgroup
usermod -a -G ftpgroup user
루트로 서버에 있어야 합니다.
또는 그룹이 소유한 파일만 포함할 것으로 예상되는 경우 소유권을 다음으로 변경하고 디렉터리의 비트를 설정할 수 있습니다./var/ftp/[email protected]/files/rsync_backup/
ftpgroup
/var/ftp/[email protected]/files/rsync_backup/
ftpgroup
setgid
chown :ftpgroup /var/ftp/[email protected]/files/rsync_backup/
chmod g+s /var/ftp/[email protected]/files/rsync_backup/
디렉터리의 비트는 setgid
해당 디렉터리에서 새로 생성된 모든 파일이 디렉터리와 유사하게 디렉터리의 그룹 소유권을 가지게 하지만 비트 setgid
도 설정됩니다. 기존 파일과 디렉터리가 있는 경우 소유권을 수동으로 변경하고 디렉터리에 비트를 설정해야 합니다./var/ftp/[email protected]/files/rsync_backup/
setgid