在 Debian 上部署 Tomcat 时,权限设置的核心原则是:
不要用 root 运行 Tomcat,使用专门的低权限用户(如 tomcat),并正确设置目录归属和文件权限。
下面按常见场景说明。
sudo useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat
如果是 apt 安装:
sudo apt install tomcat9
Debian 会自动创建 tomcat 用户和组。
假设 Tomcat 安装在 /opt/tomcat
sudo chown -R tomcat:tomcat /opt/tomcat
sudo chmod 750 /opt/tomcat
sudo chmod 750 /opt/tomcat/bin
sudo chmod 750 /opt/tomcat/conf
sudo chmod 750 /opt/tomcat/logs
sudo chmod 750 /opt/tomcat/webapps
bin/, conf/:只有 tomcat 用户能读和执行webapps/:tomcat 需要写(部署)sudo systemctl start tomcat9
sudo systemctl enable tomcat9
查看运行用户:
ps -ef | grep tomcat
不要用 root 执行:
sudo -u tomcat /opt/tomcat/bin/startup.sh
Tomcat 不能直接用 root 绑定 80/443
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
sudo setcap CAP_NET_BIND_SERVICE=+eip /opt/tomcat/bin/java
sudo chown -R tomcat:tomcat /opt/tomcat/logs
sudo chown -R tomcat:tomcat /opt/tomcat/temp
sudo chown -R tomcat:tomcat /opt/tomcat/work
❌ 用 root 启动 Tomcat
❌ chmod 777 整个目录(极不安全)
❌ webapps 可被其他用户写
| 目录 | 权限 | 属主 |
|---|---|---|
| /opt/tomcat | 750 | tomcat:tomcat |
| bin | 750 | tomcat:tomcat |
| conf | 750 | tomcat:tomcat |
| webapps | 750 | tomcat:tomcat |
| logs | 750 | tomcat:tomcat |
如果你能告诉我:
我可以给你完全针对性的权限方案。