目錄
- 主題
- 經過
- 最終解決辦法
- SeLinux概念作用
- 無效嘗試
- 總結
主題
現在服務器資產多種多樣,習慣了阿里云的保姆式配置,其他私有云的裝機配置各有各的風格,今天聊聊nginx突發狀況,權限被拒絕的問題相關排查過程及解決辦法。
經過
本來以為是個相當愉快的過程,上一篇說明了服務器安全原因,相關網絡環境的排查,這次繼續說一說關于nginx代理遇到的問題 先說說表象,原本的服務器已經預裝了nginx找到相關配置進行設置以后,還是無法訪問
ps -aux | grep nginx //查看nginx進程情況 netstat -anp | grep :80 //查看相關端口已正常啟動
在確定相關nginx已經啟動的情況下,發現代理的網站無法訪問,接口相關的500可以正常返回
curl 127.0.0.1:80/web //驗證訪問內容 /var/log/nginx/ //查看相關日志信息
或者用一下命令查看
systemctl status nginx.service -l
經過對錯誤日志的排查發現訪問網站靜態網頁時,相關異常為 'Permission denied',這種情況查了很多資料,
最終解決辦法
chcon命令是修改對象(文件)的安全上下文,比如:用戶、角色、類型、安全級別。也就是將每個文件的安全環境變更至指定環境。
SeLinux概念作用
系統開啟了SeLinux
,受到了SeLinux
的限制 先說說SeLinux的概念和作用
selinux(Security-Enhanced Linux)安全增強型linux,是一個Linux內核模塊,也是Linux的一個安全子系統。
三種模式:
Enforcing:強制模式,在selinux運作時,已經開始限制domain/type。
permissive: 警告模式,在selinux運作時,會有警告訊息,但不會限制domain/type的存取。
disabled: 關閉模式。
可用getenforce查看selinux狀態
selinux對文件的作用:
當開啟selinux后,selinux會給每個文件加載標簽context,安全上下文必須配對,否則文件不能訪問 查看下selinux策略配置(找到能生效的文件夾和當前發布的文件夾權限區別,進行相關的設置)
ls -lrtZ /usr/share/nginx/html
chcon -R -t httpd_sys_content_t /home/xx/ nginx -s reload
最終解決了相關問題,以下是進行的一些無效嘗試,可能某些服務器環境可以生效
無效嘗試
- 發布文件夾授權的嘗試
sudo chmod o+x /home/xxx/
- 關于nginx配置文件/etc/nginx/nginx.conf,指定用戶的嘗試,依然無效
user nginx; ->更改為 user root nginx -s reload
- 其他比較粗暴一點兒的教程要么直接關閉或臨時性解決
setenforce 0 ##設置SELinux 成為permissive模式 #setenforce 1 ##設置SELinux 成為enforcing模式
永久生效 修改/etc/selinux/config
文件,將SELINUX=enforcing
改為SELINUX=disabled
,重啟機器 沒敢關閉這個安全策略
總結
、我這種吸引bug的體質,不配順順利利完成任務、服務器的問題在最開始上班時,windows環境下經常最頭疼的就是服務器環境的預裝上線,常常因為這個問題搞到1點多,但那會羈絆少,懷著學習和對事兒的認真,再加上一塊和組員和領導搓一頓,幸福感滿滿。
其后也帶過很多人,合作過許多人、形形色色的,慢慢的發現越往后入行的很多人害怕環境部署,害怕出問題,所以拒絕去嘗試部署。動輒就是 "福報" 和 "PUA" 防身,非是站在道德制高點去指摘,很多事情過猶不及,盲目的隨大流去指摘,人生活和工作都是在為自己負責,盡最大的努力,做最好的自己、莫作“總有刁民想要害朕”的心態太久,實在不行,換個環境解放局限性。
linux環境之前一直淺用,之后算是有較多的涉足,沉淀下來的相關內容也會經常去完善補充,部署參考,工作久了很多對自身來說困難的事情,是沒辦法繞過去或者退縮的,一往無前吧、永遠的少年
以上就是服務器nginx權限被拒絕解決案例的詳細內容,更多關于nginx服務器權限拒絕的資料請關注其它相關文章!