用户与组管理
Java应用运行需明确所属用户/组,避免越权。使用useradd创建专用用户(如javaapp),groupadd创建对应组;通过chown修改Java文件/目录的所有者和所属组(如sudo chown -R javaapp:javaapp /opt/java_app);用usermod将用户加入组(如sudo usermod -aG javaapp youruser)。
文件/目录权限设置
chmod 700 file.java:所有者拥有全部权限,组和其他用户无权限(适合私有文件)。chmod 755 dir/:所有者有全部权限,组和其他用户有读/执行权限(适合共享目录,如Java项目根目录)。sudo chown root:javaapp /opt/java_app/config.properties)。CentOS默认启用SELinux,可能限制Java应用访问资源。需调整SELinux策略:
sudo yum install -y policycoreutils-python)。/var/www/java_app),执行semanage fcontext -a -t httpd_sys_content_t "/var/www/java_app(/.*)?"。restorecon -Rv /var/www/java_app。通过Java安全管理器(SecurityManager)细化权限,限制Java应用的系统操作(如文件读写、网络访问):
-Djava.security.manager参数(如java -Djava.security.manager -jar app.jar)。java.policy文件(位于$JAVA_HOME/jre/lib/security/),定义具体权限(如允许读取/tmp目录:grant { permission java.io.FilePermission "/tmp/*", "read"; };)。 ⚠ 注意:
grant { permission java.security.AllPermission; };会赋予全部权限,仅限测试环境使用。
配置Java环境变量时,需确保权限正确:
JAVA_HOME、PATH)需root权限,使用sudo vi /etc/profile添加:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk export PATH=$JAVA_HOME/bin:$PATH 生效命令:source /etc/profile。vi ~/.bashrc添加相同内容,执行source ~/.bashrc生效。ls -l file.java),用chmod 700 file.java赋予权限。sudo临时提权(如sudo javac file.java),但避免长期使用。sudo setenforce 0),若问题解决,调整SELinux策略而非完全禁用。通过以上步骤,可实现CentOS下Java权限的精细化管理,平衡安全性与可用性。生产环境中,建议遵循最小权限原则,避免过度授权。