Chinaunix

标题: rsync只能用root用户运行服务端吗? [打印本页]

作者: string2020    时间: 2014-06-15 14:41
标题: rsync只能用root用户运行服务端吗?
rsync软件用源码安装的,安装路径为:/home/jenkins/vs/rsync
rsync的配置文件内容为:

uid = jenkins
gid = jenkins
use chroot = no
max connections = 4
strict modes = no
port = 9090

pid file = /tmp/rsync/rsyncd.pid
motd file = /home/jenkins/vs/rsync/conf/rsyncd.motd
lock file = /tmp/rsync/rsync.lock
log file = /tmp/rsync/rsyncd.log


[jenkins-ci]
path =/home/jenkins/jenkins/work
comment = This is a jenkins ci data
ignore errors         
read only = yes
list = no              
auth users = backup
secrets file = /home/jenkins/vs/rsync/conf/rsyncd.passwd

其中/home/jenkins/jenkins/work这个目录的数据,全部由jenkins用户产生

然后,服务端运行:(以jenkins用户运行)
./rsync --daemon --config=/home/jenkins/vs/rsync/conf/rsyncd.conf

客户端 运行:
./rsync -vzrtopg --progress --delete --port=9090 jenkins@192.168.1.223::jenkins-ci ~/data
客户端运行报错:
[jenkins@cluster bin]$ ./rsync -vzrtopg --progress --delete --port=9090 jenkins@192.168.1.223::jenkins-ci ~/data

Password:
@ERROR: setgroups failed
rsync error: error starting client-server protocol (code 5) at main.c(1635) [Receiver=3.1.1pre2]
查看服务端日志:
2014/06/15 14:39:26 [40509] rsyncd version 3.1.1pre2 starting, listening on port 9090
2014/06/15 14:39:44 [40510] params.carameter() - Ignoring badly formed line in config file: ignore errors
2014/06/15 14:39:45 [40510] name lookup failed for 192.168.1.222: Name or service not known
2014/06/15 14:39:45 [40510] connect from UNKNOWN (192.168.1.222)
2014/06/15 14:39:46 [40510] rsync: setgroups failed: Operation not permitted (1)


如果服务端以root用户启动rsync服务器,客户端就没有问题了

请问rsync只能用root用户运行吗?
作者: q1208c    时间: 2014-06-16 07:44
从协议和配置上看, rsync 应该可以用普通用户启动和使用的.

只不过, 你的参数有点小问题, 普通用户应该没有 chown/chgrp 的能力的. 所以, 你rsync过来的文件, 只能是你自己的用户.
作者: string2020    时间: 2014-06-16 23:21
现在的问题是,服务端必须要用root用户运行。

但是,我客户端只是想把文件拿下来而已,不想chown/chgrp,我想干的就这些
作者: q1208c    时间: 2014-06-17 11:07
回复 3# string2020

如果你服务端不想用root运行, 那必须保证你要访问的目录是 普通用户可以访问的.

另外, 同步参数中不要加 -p -g 这样的保留属方的参数.
   
作者: shawshank_wwb    时间: 2019-02-12 17:19
本帖最后由 shawshank_wwb 于 2019-02-12 17:21 编辑

可以不需要root用于运行rsync服务端,也可以在客户端上传
客户端命令
rsync -azuqt --delete /home/miaocb/rsync/test/ --port=9520 192.168.7.43::www/

服务端的配置文件是类似楼主的配置
不过没设置密码的
rsync版本是3.0的

作者: shawshank_wwb    时间: 2019-02-12 17:21
回复 5# shawshank_wwb

现在机器是内核2.6之后,rsync版本是3.0的
作者: allenshen_99    时间: 2019-02-26 15:50
注释 auth users = backup 看下
[jenkins-ci]
            
#auth users = backup
secrets file = /home/jenkins/vs/rsync/conf/rsyncd.passwd





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2