Ubuntu Server 14.04 LTS에서 16.04 LTS로 가상 머신을 업데이트한 후 OpenVPN이 작동을 멈췄으며 그 이유를 이해하는 데 도움이 필요합니다.
systemctl status를 사용하면 OpenVPN이 "권한 거부"로 인해 /run/openvpn에 PID 파일을 생성하거나 /var/log/openvpn에 로그 파일을 생성할 수 없음을 알 수 있습니다.
똑같은 명령을 사용하여 루트로 OpenVPN을 수동으로 시작하면 모든 것이 잘 작동하고, 폴더의 권한을 777로 변경해도 잘 작동합니다.
/run/openvpn은 root:root가 소유하며 처음에는 755개의 권한을 갖습니다.
/var/log/openvpn은 openvpn:root가 소유하며 처음에는 권한 775를 갖습니다.
777 권한으로 OpenVPN을 실행하면 다음 파일을 볼 수 있습니다.
/run/openvpn/server.pid 루트: 루트 644 /var/log/openvpn/openvpn.log. 루트: 루트 600 /var/log/openvpn/openvpn-status.log 루트: 루트 600
그러면 OpenVPN이 루트로 실행되는 것 같은데 systemd를 사용할 때 폴더 권한이 755로 거부되는 이유는 무엇입니까? bash에서 루트로 동일한 명령줄을 실행하면 예상대로 작동합니다.
/lib/시스템/.../[이메일 보호됨]콘텐츠:
[단위] 설명=%i에 연결된 OpenVPN 부분=openvpn.service ReloadPropagatedFrom=openvpn.service 이전=systemd-user-sessions.service 문서=man:openvpn(8) 문서=https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage 문서=https://community.openvpn.net/openvpn/wiki/HOWTO [제공하다] PrivateTmp=true KillMode=혼합 유형=포크 ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/% i.conf --writepid /run/openvpn/%i.pid PID파일=/run/openvpn/%i.pid ExecReload=/bin/kill -HUP $MAINPID 작업 디렉토리=/etc/openvpn 보호 시스템 = 예 CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_READ_SEARCH CAP_AUDIT_WRITE 한도NPROC=10 DeviceAllow=/dev/null rw DeviceAllow=/dev/net/tun rw [설치하다] WantedBy=다중 사용자.대상