在 CentOS 上修改 Java 应用日志文件的权限,通常需要从 日志文件本身权限、目录权限、运行用户、以及日志框架配置 几个方面入手。下面按常见场景说明。
ps -ef | grep java
例如:
tomcat 1234 ... java -jar app.jar
说明是 tomcat 用户 在写日志。
chmod 644 /var/log/app/app.log
chown tomcat:tomcat /var/log/app/app.log
如果是目录:
chown -R tomcat:tomcat /var/log/app
chmod 755 /var/log/app
常见报错:
Permission denied
java.io.FileNotFoundException: /var/log/app/app.log
解决方式:
/opt/app/logs/
/home/tomcat/logs/
mkdir -p /var/log/app
chown -R tomcat:tomcat /var/log/app
logback.xml:
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>/var/log/app/app.log</file>
</appender>
确保:
log4j.appender.file.File=/var/log/app/app.log
如果你用 systemd 启动 Java:
vim /etc/systemd/system/app.service
[Service]
User=tomcat
Group=tomcat
修改后:
systemctl daemon-reload
systemctl restart app
getenforce
如果是 Enforcing:
chcon -R -t var_log_t /var/log/app
setenforce 0
✅ 专门建日志目录
✅ Java 用非 root 用户运行
✅ 日志目录权限 755
✅ 日志文件权限 644
✅ 使用 logrotate 管理日志
useradd -r appuser
mkdir -p /var/log/app
chown -R appuser:appuser /var/log/app
chmod 755 /var/log/app
# Java 启动
sudo -u appuser java -jar app.jar
如果你能告诉我:
我可以给你 精确修改命令。