최신 버전의 nexus(현재 3.6.0)를 설치한 후 수동 명령을 사용하여 시작할 수 있습니다.
/opt/nexus/bin/nexus start
하지만 서비스로 시작하려고 하면(지시된 대로)https://help.sonatype.com/display/NXRM3/Installation#Installation-RunningtheService), 다음을 얻습니다.
Oct 04 13:47:53 localhost.localdomain sudo[2546]: root : TTY=pts/0 ; PWD=/root ; USER=root ; COMMAND=/bin/systemctl start nexus.service
Oct 04 13:47:53 localhost.localdomain audit[2546]: USER_CMD pid=2546 uid=0 auid=0 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='cwd="/root" cmd=73797374656D63746C207374617274206E657875732E7365
Oct 04 13:47:53 localhost.localdomain audit[2546]: CRED_REFR pid=2546 uid=0 auid=0 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:setcred grantors=pam_env,pam_unix acct="root" exe="/usr/
Oct 04 13:47:53 localhost.localdomain sudo[2546]: pam_systemd(sudo:session): Cannot create session: Already running in a session
Oct 04 13:47:53 localhost.localdomain audit[2546]: USER_START pid=2546 uid=0 auid=0 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:session_open grantors=pam_keyinit,pam_limits,pam_keyini
Oct 04 13:47:53 localhost.localdomain sudo[2546]: pam_unix(sudo:session): session opened for user root by root(uid=0)
Oct 04 13:47:53 localhost.localdomain systemd[1]: Starting nexus service...
-- Subject: Unit nexus.service has begun start-up
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit nexus.service has begun starting up.
Oct 04 13:47:53 localhost.localdomain systemd[2549]: nexus.service: Failed at step EXEC spawning /opt/nexus/bin/nexus: Permission denied
-- Subject: Process /opt/nexus/bin/nexus could not be executed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- The process /opt/nexus/bin/nexus could not be executed and failed.
--
-- The error number returned by this process is 13.
Oct 04 13:47:53 localhost.localdomain audit[2549]: AVC avc: denied { execute } for pid=2549 comm="(nexus)" name="nexus" dev="dm-0" ino=398592 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:adm
Oct 04 13:47:53 localhost.localdomain audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=nexus comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=
Oct 04 13:47:53 localhost.localdomain systemd[1]: nexus.service: Control process exited, code=exited status=203
Oct 04 13:47:53 localhost.localdomain systemd[1]: Failed to start nexus service.
-- Subject: Unit nexus.service has failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit nexus.service has failed.
--
-- The result is failed.
Oct 04 13:47:53 localhost.localdomain systemd[1]: nexus.service: Unit entered failed state.
Oct 04 13:47:53 localhost.localdomain systemd[1]: nexus.service: Failed with result 'exit-code'.
Oct 04 13:47:53 localhost.localdomain sudo[2546]: pam_unix(sudo:session): session closed for user root
Oct 04 13:47:53 localhost.localdomain audit[2546]: USER_END pid=2546 uid=0 auid=0 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:session_close grantors=pam_keyinit,pam_limits,pam_keyinit
Oct 04 13:47:53 localhost.localdomain audit[2546]: CRED_DISP pid=2546 uid=0 auid=0 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:setcred grantors=pam_env,pam_unix acct="root" exe="/usr/
l
고쳐 쓰다:selinx를 비활성화하면 즉, 서비스를 관리할 수 있다는 것을 알았지 setenforce 0
만 장기적인 솔루션으로 사용하고 싶지는 않습니다.
다음은 몇 줄입니다./var/log/audit/audit.log
type=AVC msg=audit(1507473817.658:193): avc: denied { execute } for pid=975 comm="(nexus)" name="nexus" dev="dm-0" ino=398592 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0
type=SERVICE_START msg=audit(1507473817.660:194): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=nexus comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'
type=AVC msg=audit(1507474250.245:195): avc: denied { execute } for pid=1052 comm="(nexus)" name="nexus" dev="dm-0" ino=398592 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:unconfined_exec_t:s0 tclass=file permissive=0
type=SERVICE_START msg=audit(1507474250.246:196): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=nexus comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'
누구든지 여기에서 도움을 줄 수 있나요?
답변1
이 문제를 해결하려면 Systemd가 다음 명령을 사용하여 /app/nexus/bin/nexus 경로에 있는 nexus 바이너리에 액세스할 수 있도록 SELinux 정책을 추가하세요.
sudo chcon -R -t bin_t /opt/nexus/bin/nexus
답변2
이 질문에 대해 시간을 보낸 후 답을 찾아야 합니다. 위에서 언급한 것과 동일한 문제에 직면했습니다. 내 운영 체제는 RHEL 7.5이고 SELinux는 적용되도록 설정되어 있습니다. Nexus 버전은 3.13.0-01입니다.
systemd에 대한 연결 서비스는 Sonatype에 의해 정의됩니다. 여기에서 systemd 서비스 실행에 대한 Sonatype의 지침을 참조하세요.https://help.sonatype.com/repomanager3/installation/run-as-a-service
해당 페이지에서 nexus.service를 사용하여 정의된 서비스가 시작되지만 결국 시간 초과되어 종료됩니다. 서비스 유형은분기분기된 유형은 상위 프로세스가 종료될 때까지 잠시 기다리지만 이 이벤트는 분명히 발생하지 않습니다. 소나타입에 문의한 적은 없지만 이 문제가 해결되지 않았기 때문에 작동하는 솔루션을 추가하고 있습니다. 이 문제를 해결하기 위해 유형을 변경했습니다.분기도착하다단순한nexus.service 파일에 있습니다.
답변3
또한 nexus 사용자가 /opt/nexus를 소유하고 있는지 확인하세요.
다음과 같이 작동하는 코드 조각은 다음과 같습니다. /etc/systemd/system/nexus.service
[Unit]
Description=nexus service
After=network.target
[Service]
Type=simple
LimitNOFILE=65536
ExecStart=/opt/nexus-3.19.0-01/bin/nexus start
ExecStop=/opt/nexus-3.19.0-01/bin/nexus stop
User=nexus
Restart=on-abort
[Install]
WantedBy=multi-user.target
답변4
nexus 디렉터리의 컨텍스트를 설정합니다(과도할 수도 있지만 SELinux를 비활성화하는 것보다 낫습니다).https://linux.die.net/man/8/initrc_selinux
semanage fcontext -a -t initrc_t "/opt/nexus(/.*)?"
semanage fcontext -a -t initrc_exec_t "/opt/nexus(/.*)?"
# list
semanage fcontext --list | grep '/opt/nexus'
# apply changes
restorecon -R -v /opt/nexus > /dev/null