首頁 > 軟體

伺服器nginx許可權被拒絕解決案例

2022-09-16 22:04:47

主題

現在伺服器資產多種多樣,習慣了阿里雲的保姆式設定,其他私有云的裝機設定各有各的風格,今天聊聊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伺服器許可權拒絕的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com