我有一些 bash 脚本(本质上都是彼此的克隆),每个脚本都会对不同的 dnf/yum 存储库进行 rsync,以将该存储库拉到我们的本地镜像。手动运行(以 root 身份)时,脚本都可以正确运行。
我还有一个 systemd 单元/服务文件(如下)以及相应的计时器文件。就计时器触发和服务运行而言,这一切都正常工作。但是,当服务运行时(通过计时器或以 root 身份手动运行),我收到以下错误(来自脚本之一的日志 - 每个脚本都报告相同的错误)。
谁能告诉我哪里错了?谢谢。
单位档案
[Unit]
Description=Sync the local DNF mirror server with upstream repo servers
Wants=network-online.target
After=multi-user.target
[Service]
Type=oneshot
User=root
ExecStart=/etc/rsync.d/sync_ceph_repos.sh
ExecStart=/etc/rsync.d/sync_elrepo_repos.sh
ExecStart=/etc/rsync.d/sync_epel_repos.sh
ExecStart=/etc/rsync.d/sync_gf_repos.sh
ExecStart=/etc/rsync.d/sync_nginx_repos.sh
ExecStart=/etc/rsync.d/sync_remi_repos.sh
ExecStart=/etc/rsync.d/sync_rocky_repos.sh
[Install]
WantedBy=multi-user.target
日志中的错误消息
rsync: [Receiver] failed to connect to mirror.digitalpacific.com.au (101.0.120.90): Permission denied (13)
rsync error: error in socket IO (code 10) at clientserver.c(138) [Receiver=3.2.3]
rsync: [Receiver] failed to connect to mirror.digitalpacific.com.au (101.0.120.90): Permission denied (13)
rsync error: error in socket IO (code 10) at clientserver.c(138) [Receiver=3.2.3]
答案1
我假设你的服务是 Sync.service 所以... ausearch -c 'Sync' --raw | audit2allow -M my-Sync semodule-i my-Sync.pp
然后尝试再次执行“systemctl start Sync.service”,如果失败,请冲洗/重复。您正在迭代 SElinux 系统的权限更改。希望有人有更好的答案。