Systemd用户态服务运行rsync时权限拒绝问题求助
Systemd用户态服务运行rsync时权限拒绝问题求助
我在Raspbian 11的树莓派上通过SSH登录,想创建一个用户态的systemd服务和定时器,用来同步当前登录用户home目录下的两个文件夹。服务文件已经放在~/.config/systemd/user/目录下,并且通过systemctl --user enable <服务文件名>完成了启用。
奇怪的是:
- 以当前登录用户身份(不用sudo)手动执行rsync命令时,一切正常;
- 但用
systemctl --user start <服务名>启动服务时,却持续报错,每个子文件夹和隐藏文件都会出现类似这样的权限拒绝提示:
rsync: [sender] opendir "/home/theuser/samba/projfolder/afolder" failed: Permission denied (13)
我查看了目标共享目录的权限,其中一个子文件夹的权限信息是:drwxrws--- 2 sambaservant servantgroup
这里的sambaservant是和Samba用户绑定的本地用户,负责管理这个Samba共享目录。我当前登录的用户是servantgroup组的成员(这应该是我手动能读取并同步该文件夹的原因),而且sambaservant也属于这个组。
我要执行的rsync命令是:rsync -av /home/theuser/samba/projfolder/ /home/theuser/local_backup_copies/
我的systemd服务文件内容如下:
[Unit] Description=Sync Samba share proj folder to other folder [Service] Type=simple ExecStart=rsync -av /home/theuser/samba/projfolder/ /home/theuser/local_backup_copies/ [Install] WantedBy=default.target
另外我还做了测试:如果源目录及其内容是当前登录用户所有的,这个rsync服务就能正常运行成功。
想问下大家,为什么手动执行rsync命令没问题,但通过systemd用户态服务运行就会出现权限拒绝呢?
备注:内容来源于stack exchange,提问作者piggvar
相关产品推荐
相关产品推荐

