Systemd Fedora 25 시작 스크립트 권한이 거부되었습니다.

Systemd Fedora 25 시작 스크립트 권한이 거부되었습니다.

저는 systemd(Vbox의 Fedora 25)용 시작 스크립트를 작성하는 방법에 대한 여러 튜토리얼을 따라왔습니다. 그러나 나는 그것을 작동시킬 수 없습니다.

/home/dario/Desktop/unix/SYSTEMD/print_date.sh이것은 내가 실행하고 싶은 bash 스크립트입니다:

#!/bin/bash
date > startup_date

파일의 권한을 변경했는데,chmod 755 print_date.sh

서비스 파일을 만들었습니다 /etc/systemd/system/print_date.service(이것은 마지막 버전일 뿐이며 다른 많은 반복을 시도했습니다).

[Unit]
Description=Example startup script
After=multi-user.target

[Service]
Type=forking
ExecStart=/home/dario/Desktop/unix/SYSTEMD/print_date.sh
User=root
Group=root

[Install]
WantedBy=multi-user.target

난 달린다

systemctl daemon-reload
systemctl enable print_date

재부팅하지 않고 테스트

systemctl start print_date

이로 인해 오류가 발생했습니다.

[root@dario SYSTEMD]# systemctl start print_date
Job for print_date.service failed because the control process exited with error code.
See "systemctl status print_date.service" and "journalctl -xe" for details.

저널 -xn을 사용하여 디버깅을 시도하면 결과는 다음과 같습니다.

[root@dario SYSTEMD]# journalctl -xn
-- Logs begin at Wed 2016-12-28 13:03:41 PST, end at Sat 2017-03-18 12:25:39 PDT. --
Mar 18 12:25:35 dario systemd[4143]: print_date.service: Failed at step EXEC spawning /home/dario/Desktop/unix/SYSTEMD/print_date.sh: Permissi
-- Subject: Process /home/dario/Desktop/unix/SYSTEMD/print_date.sh could not be executed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- The process /home/dario/Desktop/unix/SYSTEMD/print_date.sh could not be executed and failed.
-- 
-- The error number returned by this process is 13.
Mar 18 12:25:35 dario systemd[1]: print_date.service: Control process exited, code=exited status=203
Mar 18 12:25:35 dario systemd[1]: Failed to start Example startup script.
-- Subject: Unit print_date.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit print_date.service has failed.
-- 
-- The result is failed.
Mar 18 12:25:35 dario systemd[1]: print_date.service: Unit entered failed state.
Mar 18 12:25:35 dario audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=print_date
Mar 18 12:25:35 dario systemd[1]: print_date.service: Failed with result 'exit-code'.
Mar 18 12:25:38 dario dbus-daemon[682]: [system] Activating service name='org.fedoraproject.Setroubleshootd' requested by ':1.36' (uid=0 pid=6
Mar 18 12:25:38 dario dbus-daemon[682]: [system] Successfully activated service 'org.fedoraproject.Setroubleshootd'

답변1

나에게 맞는 답을 찾았습니다. 그러나 내 것만큼 철저하지 않은 해결책이 있다면 자세히 설명해주세요.

제 경우에는 다음과 같이 설정된 SELinux 기본 모드에 문제가 있었습니다.구현하다. SELinux를 다음으로 설정하여용인시작 시(그리고 systemctl start..를 사용하여 테스트할 때마다) 스크립트가 실행되도록 허용할 수 있습니다.

나는 SELinux의 모든 것을 잘 이해하지 못하며 나보다 더 큰 일을 하고 있는 것 같은 느낌이 듭니다. 저는 이 솔루션을 보다 전문적인 방식으로 확장하기 위해 다른 사람들을 초대합니다.

존재하다/etc/selinux/config

세트 라인

SELINUX = enforcing

도착하다

SELINUX = permissive

시작 파일을 실행할 수 있습니다. 인사.

관련 정보