web-dev-qa-db-ja.com

root以外のユーザーが自分のファイルのグループを変更できるようにする

自宅のサーバーは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へのフルアクセスを許可したくないので、明らかにセキュリティ上の問題があります。

ユーザーが所有するファイルに対してのみグループを変更する権限をユーザーに付与する方法はありますか?

1
fingust

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ビットを設定する必要があります。

1
Torin