自宅のサーバーは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を介してグループのプロパティを設定しようとしましたが、明らかにrootユーザーだけが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