Tho*_*son 9 ssh backup permissions rsync
我想要一个可以访问系统上所有文件和文件夹的用户。这是为了在本地机器上使用 RSYNC 来备份远程机器。
目前我们正在使用该用户backups
,尽管我们已将此用户添加到组中sudo
,但admin
rsync 仍然返回如下消息:
rsync: opendir "/location/to/folder" 失败:权限被拒绝 (13)
rsync:send_files 无法打开“/location/to/file”:权限被拒绝 (13)
任何想法我们如何授予用户backups
访问所有内容的权限(除了将用户添加到所有组之外 - 我们尝试备份的远程服务器是专用托管服务器,其中每个帐户在系统上都有自己的用户)。
谢谢你的帮助。
仅将用户添加backups
到用户组sudo
并不会自动授予该帐户对系统上所有文件的访问权限。它授予用户运行sudo
命令的权限。
由于您使用的是公钥身份验证(大概没有密码),因此我会在考虑安全性和易于实施的情况下进行处理。使用ssh
允许您限制用户仅执行非常特定的命令。在这种情况下,您可以允许用户backups
以rsync
超级用户权限执行。
您已经执行了密钥交换并且验证身份验证成功。在authorized_keys
您/home
从其备份目录的远程主机上的文件中,您可以command=
向用户使用的密钥添加指令backups
。该指令仅允许在使用该密钥进行身份验证时运行该命令。所以键的第一个字段看起来类似于:
command="/path/to/sudo /path/to/rsync -az /home /local/folder" ssh-rsa AAAAB3NzaC1yblahblahblah
Run Code Online (Sandbox Code Playgroud)
您可以更进一步,为密钥添加更多选项,例如from=myhost,no-pty,no-X11-forwarding
.
这应该为您提供不错的安全性,并且不需要您修改底层文件系统权限。您可能需要使用放置在authorized_keys
文件中的命令,直到它按预期工作为止;可能需要一点时间才能让您的大脑围绕它。中指定的命令authorized_keys
将基本上覆盖rsync
您将从连接主机传递的选项。
中的很多好信息man sshd
。您想专门阅读 AUTHORIZED_KEYS FORMAT 部分。
一种选择是在远程系统上运行 rsync 服务器。
基本上,创建一个rsync.conf
withuid=root
然后使用rsync -az rsync://domain.com
.
请参阅http://pastebin.com/5hQx1mRV以获取其他人编写的示例,以及配置 rsync 守护进程以了解在 Ubuntu 中启用服务器的一些基础知识。
请注意,您必须考虑这样做的安全性。更好的方法可能是让远程系统推送到本地系统。