web-dev-qa-db-ja.com

ルートとしてRsyncを使用してアクセスが拒否されました

私が遭遇したすべてのトピックは、アクセスが制限されたユーザーを使用して、rsyncまたはsshを介してrsyncに関係していました。

Rootとしてpermissiondenied(13)エラーが発生します。これが私の設定ファイルです:

/etc/rsyncd.conf:

auth users = backup, root
secrets file = /etc/rsyncd.secrets

[backupdir]
    path = /backupdir

/etc/rsyncd.secrets(ファイルモード600、所有者ルート、グループルート):

backup:backuppassword
root:rootpassword

Rsyncを実行するbashスクリプト:

export RSYNC_PASSWORD=rootpassword

rsync -a --verbose --delete rsync://root@myserver/backupdir mydestination

上記のbashスクリプトとmydestinationはWin XPマシンにあり、myserverはDebianサーバーです。

5
Ash

rsyncd.conf のメインページから:

auth users
       This parameter specifies a comma and space-separated list of usernames
       that will be allowed to connect to this module. The usernames do not need
       to exist on the local system. [...]

つまり、rsyncデーモンに選択したユーザー名は、同じ名前のシステムのユーザーにリンクされていません。

ただし、ファイルにアクセスするときにrsyncデーモンが使用するユーザーIDとグループIDを設定することはできます(少なくともroot権限でデーモンを起動した場合)。

uid    This  parameter  specifies  the user name or user ID that file transfers to
       and from that module should take place as when the daemon was run as root.
       In combination with the "gid" parameter this determines what file permissions
       are available. The default is uid -2, which is normally the user "nobody".

gid    This parameter specifies the group name or group ID that file transfers to
       and from that module should take place as when the daemon  was  run  as  root.
       This complements the "uid" parameter. The default is gid -2, which is normally
       the group "nobody".

例えば:

uid = johndoe
gid = johndoe
7
n.st