[英]Tomcat is not getting started: Permission denied
嘗試使用systemd 服務啟動 tomcat 時出現以下錯誤
systemd[1]: tomcat.service: Failed to execute command: Permission denied
systemd[1]: tomcat.service: Failed at step EXEC spawning /opt/tomcat/bin/startup.sh: Permission denied
下面是我的 tomcat.service 配置
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
這些是我對 bin 目錄中文件的權限
drwxrwx---. 2 tomcat tomcat 4096 Mar 22 05:56 .
drwx------. 9 tomcat tomcat 276 Mar 22 05:58 ..
-rw-r-----. 1 tomcat tomcat 35071 Mar 11 09:33 bootstrap.jar
-rw-r-----. 1 tomcat tomcat 15953 Mar 11 09:33 catalina.bat
-rwxr-x--x. 1 tomcat tomcat 23792 Mar 11 09:33 catalina.sh
-rw-r-----. 1 tomcat tomcat 1664 Mar 11 09:36 catalina-tasks.xml
-rw-r-----. 1 tomcat tomcat 2123 Mar 11 09:33 ciphers.bat
-rwxr-x--x. 1 tomcat tomcat 1997 Mar 11 09:33 ciphers.sh
-rw-r-----. 1 tomcat tomcat 25197 Mar 11 09:33 commons-daemon.jar
-rw-r-----. 1 tomcat tomcat 206895 Mar 11 09:33 commons-daemon-native.tar.gz
-rw-r-----. 1 tomcat tomcat 2040 Mar 11 09:33 configtest.bat
-rwxr-x--x. 1 tomcat tomcat 1922 Mar 11 09:33 configtest.sh
-rwxr-x--x. 1 tomcat tomcat 8675 Mar 11 09:33 daemon.sh
-rw-r-----. 1 tomcat tomcat 2091 Mar 11 09:33 digest.bat
-rwxr-x--x. 1 tomcat tomcat 1965 Mar 11 09:33 digest.sh
-rw-r-----. 1 tomcat tomcat 3606 Mar 11 09:33 makebase.bat
-rwxr-x--x. 1 tomcat tomcat 3382 Mar 11 09:33 makebase.sh
-rw-r-----. 1 tomcat tomcat 3460 Mar 11 09:33 setclasspath.bat
-rwxr-x--x. 1 tomcat tomcat 3708 Mar 11 09:33 setclasspath.sh
-rw-r-----. 1 tomcat tomcat 2020 Mar 11 09:33 shutdown.bat
-rwxr-x--x. 1 tomcat tomcat 1902 Mar 11 09:33 shutdown.sh
-rw-r-----. 1 tomcat tomcat 2022 Mar 11 09:33 startup.bat
-rwxr-x--x. 1 tomcat tomcat 1904 Mar 11 09:33 startup.sh
-rw-r-----. 1 tomcat tomcat 49372 Mar 11 09:33 tomcat-juli.jar
-rw-r-----. 1 tomcat tomcat 419428 Mar 11 09:33 tomcat-native.tar.gz
-rw-r-----. 1 tomcat tomcat 4574 Mar 11 09:33 tool-wrapper.bat
注意:我可以通過導航到 bin 目錄使用 sudo./startup.sh 命令啟動 tomcat
我想您遵循了許多復制的在線教程之一,其中tomcat
用戶使用/opt/tomcat/
作為其主目錄,使用類似的內容:
sudo useradd -d /opt/tomcat -s /sbin/nologin tomcat
SELinux 阻止應用程序從主目錄啟動,並在/var/log/audit/audit.log
中顯示如下消息
type=AVC msg=audit(1614250994.710:33614): avc: denied { execute } for pid=60244 comm="(artup.sh)" name="startup.sh" dev="dm-3" ino=19000615 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:user_tmp_t:s0 tclass=file permissive=0
我不相信tomcat
用戶需要一個主文件夾,所以要么從現有用戶中刪除它:
sudo usermod -d / tomcat
或者使用以下命令創建新用戶:
sudo useradd -M -s /sbin/nologin tomcat
之后使用以下命令重置 SELinux 屬性:
sudo restorecon -rv /opt/tomcat
你能檢查你的/opt
和/opt/bin
權限嗎
好像
chmod a+rx /opt /opt/tomcat/ /opt/tomcat/bin
應該有幫助
我遇到了同樣的問題並通過restorecon修復它。 我不知道問題發生的原因是否與原始問題相同,但我認為這取決於如何安裝 tomcat。
通常,我們將 tar.gz 下載到臨時目錄,然后將 tar xzvf 下載到臨時目錄。 接下來,我們將其移至 /opt 或 /usr/local。 那時,如果我們使用 mv,SELinux 上下文沒有改變,就會發生權限被拒絕。 但是您可以通過 restorecon 更改它。 如果我們使用 cp -R,SELinux 上下文會改變,那么權限被拒絕就不會發生。
新創建的 tomcat 用戶未獲得執行命令的完全權限。 就我而言,此命令有效:
sudo chown -R tomcat: /opt/tomcat
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.