web-dev-qa-db-ja.com

すべてのファイルとフォルダーにユーザー権限を付与する

システム上のすべてのファイルとフォルダーにアクセスできるユーザーが必要です。これは、ローカルマシンでRSYNCを使用してリモートマシンをバックアップするためのものです。

現在、ユーザーbackupsを使用しており、このユーザーをグループSudoおよびadminに追加しましたが、rsyncは次のようなメッセージを返します。

rsync:opendir "/ location/to/folder" failed:Permission denied(13)

rsync:send_files failed to open "/ location/to/file":Permission denied(13)

すべてにアクセスするためのbackups権限をユーザーにどのように付与するか(これまでにすべてのグループにユーザーを追加することを除く)-バックアップしようとしているリモートサーバーは、すべてのアカウントに独自のユーザーがいる専用のホスティングサーバーですシステム)。

助けてくれてありがとう。

9
Thomas Clayson

ユーザーbackupsをユーザーグループSudoに追加するだけでは、システム上のすべてのファイルへのアクセス権がアカウントに自動的に付与されるわけではありません。 Sudoコマンドを実行する権限をユーザーに与えます。

あなたは公開鍵認証(おそらくパスフレーズなし)を使用しているので、セキュリティと実装の容易さを念頭に置いてこれに取り組みます。 sshを使用すると、特定のコマンドのみを実行するようにユーザーを制限できます。この場合、ユーザーbackupsにスーパーユーザー権限でrsyncを実行することを許可できます。

すでに鍵交換を実行しており、認証が成功したことを確認しました。 authorized_keysディレクトリをバックアップするリモートホストの/homeファイルで、command=ディレクティブをユーザーが使用するキーに追加できますbackups 。このディレクティブは、認証にthatキーが使用されている場合にのみthatコマンドの実行を許可します。したがって、キーの最初のフィールドは次のようになります。

command="/path/to/Sudo /path/to/rsync -az /home /local/folder" ssh-rsa AAAAB3NzaC1yblahblahblah

さらに進んで、from=myhost,no-pty,no-X11-forwardingなどのオプションをキーに追加できます。

これにより、適切なセキュリティが提供され、基盤となるファイルシステムのアクセス許可を変更する必要がなくなります。期待どおりに機能するまで、authorized_keysファイルに配置したコマンドを試してみてください。脳を包み込むのに少し時間がかかるかもしれません。 authorized_keysで指定されたコマンドは、基本的に、接続ホストから渡すrsyncオプションをオーバーライドします。

man sshdにはたくさんの良い情報があります。特にAUTHORIZED_KEYS FORMATセクションを読みたいと考えています。

6
George M

1つのオプションは、リモートシステムでrsyncサーバーを実行することです。

基本的に、rsync.confを使用してuid=rootを作成し、次にrsync -az rsync://domain.comを使用します。

他の誰かが書いた例については http://Pastebin.com/5hQx1mRV を、Ubuntuでサーバーを有効にするための基本については rsyncデーモンの構成 を参照してください。

これのセキュリティを考慮する必要があることに注意してください。より良いアプローチは、おそらくリモートシステムをローカルシステムにプッシュすることです。

2
Mikel

おそらくACLを使用できます基礎となるファイルシステムがサポートしている場合。

各ファイルとディレクトリのACLにグループバックアップを追加する必要があります。ただし、新しく作成されたファイルとディレクトリに自動的に追加されるようにするには、まずデフォルトのACLをすべての既存のディレクトリに設定する必要があります。したがって、リモートサーバー上で:

Sudo find /home -type d -print0 | xargs -0 setfacl -d -m group:backup:r-x

次に、既存のすべてのディレクトリに対するrx権限とファイルの読み取りが必要です。あなたは2つのコマンドでこれを行うことができます(今回は-dなし)

Sudo setfacl -R -m group:backup:r-- /home
Sudo find /home -type d -print0 | xargs -0 setfacl -m group:backup:r-x

これにより、各ファイルを所有する既存のユーザーとグループを変更せずに、グループバックアップにファイルを読み取る追加の権限が与えられます。

注:検索を加速する| xargsコマンドxargsコマンドに次のオプションを追加できます:-P n nは並列プロセスの数。マシンにあるCPUの数+ 1に設定できます

1
Huygens