自宅のサーバーは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経由でgroupプロパティを設定しようとしましたが、chownとchgrpを使用できるのはrootユーザーのみであるようですが、sudoersファイルを編集してユーザーにchownへのフルアクセスを許可したくないので、明らかにセキュリティ上の問題があります。
ユーザーが所有するファイルに対してのみグループを変更する権限をユーザーに付与する方法はありますか?
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
ビットを設定する必要があります。