用戶與組管理
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權限的精細化管理,平衡安全性與可用性。生產環境中,建議遵循最小權限原則,避免過度授權。