目錄
前言:
步驟一:先查詢nginx相關(guān)信息
1、查詢操作系統(tǒng)版本:cat /etc/redhat-release
2、查詢nginx安裝路徑:如果不知道nginx安裝目錄,使用:find / -name nginx(全局查找nginx應(yīng)用)
3、切換到nginx父目錄下查看nginx目前所屬主:所屬組權(quán)限屬于root還是普通用戶
?4、查看nginx當(dāng)前啟動所屬用戶:當(dāng)前nginx啟動用戶是屬于root權(quán)限
5、由于當(dāng)前nginx啟動用戶是root,在root下測試nginx配置是正常的,但在普通用戶下測試nginx配置會報錯。
步驟二:修改nginx啟動用戶從root改為普通用戶
?1、修改nginx所屬主和所屬組為普通用戶(修改之前nginx所屬主和所屬組為root)
2、修改nginx配置文件
3、允許普通用戶下啟動1024以下端口(應(yīng)用程序端口大于1024的話不用執(zhí)行此步驟)
?? 4、關(guān)閉nginx服務(wù)
?5、以普通用戶權(quán)限啟用nginx
?6、查看當(dāng)前nginx啟動所屬用戶:此時主進(jìn)程和子進(jìn)程所屬用戶為普通用戶
?步驟三:檢查nginx配置是否是正常
1、在root下測試nginx配置是正常的,在普通用戶下測試nginx配置也是正常的。
步驟四:回退方案
1、撤銷允許普通用戶下啟動1024以下端口
?2、修改nginx所屬主和所屬組為管理用戶(修改之前nginx所屬主和所屬組為appuser)
3、修改nginx配置文件
?4、關(guān)閉nginx服務(wù)
?5、以root用戶權(quán)限啟用nginx
?6、查看當(dāng)前nginx啟動所屬用戶:此時主進(jìn)程和子進(jìn)程所屬用戶為root用戶
7、檢查nginx配置是否是正常
前言:
一般我們在安裝nginx時為了方便安裝部署均會考慮使用root權(quán)限進(jìn)行nginx的安裝部署,但我們在使用root安裝部署后,因為默認(rèn)端口使用的是80端口,為加固網(wǎng)址的訪問安全會生成ssl秘鑰進(jìn)行https方式訪問,此時使用端口是443,因服務(wù)器安全方面考慮,root權(quán)限太大,安全團(tuán)隊不建議使用root權(quán)限進(jìn)行安裝部署并運(yùn)行nginx,但由于Linux機(jī)制,不允許普通用戶啟用1024以下端口,因此我們需要改端口大于1024,但由于一般情況下https方式訪問端口默認(rèn)是443,此時我們想要把nginx以root權(quán)限運(yùn)行改為普通用戶權(quán)限運(yùn)行就會出現(xiàn)困難,接下來告訴大家如何把以root運(yùn)行nginx權(quán)限改為以普通用戶權(quán)限運(yùn)行nginx,本人親測有效,此文章僅供參考(具體的根據(jù)實際情況進(jìn)行更改,在操作前一定要做快照,以防應(yīng)用出現(xiàn)故障)
步驟一:先查詢nginx相關(guān)信息
1、查詢操作系統(tǒng)版本:cat /etc/redhat-release
此次已centos7.6為例,其他操作系統(tǒng)需自己研究測試
2、查詢nginx安裝路徑:如果不知道nginx安裝目錄,使用:find / -name nginx(全局查找nginx應(yīng)用)
本人nginx安裝路徑:/usr/local/nginx/
3、切換到nginx父目錄下查看nginx目前所屬主:所屬組權(quán)限屬于root還是普通用戶
4、查看nginx當(dāng)前啟動所屬用戶:當(dāng)前nginx啟動用戶是屬于root權(quán)限
使用ps -ef|grep nginx命令查詢發(fā)現(xiàn)主進(jìn)程和子進(jìn)程都是root
5、由于當(dāng)前nginx啟動用戶是root,在root下測試nginx配置是正常的,但在普通用戶下測試nginx配置會報錯。
5.1:在root用戶下測試nginx配置是正常的:/usr/local/nginx/sbin/nginx -t
5.2:在普通用戶下測試nginx配置是會報錯的:/usr/local/nginx/sbin/nginx -t
步驟二:修改nginx啟動用戶從root改為普通用戶
1、修改nginx所屬主和所屬組為普通用戶(修改之前nginx所屬主和所屬組為root)
在root用戶下執(zhí)行:chown -R appuser:appuser /usr/local/nginx/
修改后nginx當(dāng)前所有文件都屬于普通用戶權(quán)限
2、修改nginx配置文件
由于nginx安裝時默認(rèn)使用root權(quán)限允許,由于改為普通用戶權(quán)限運(yùn)行nginx,所以需要把user這行注釋掉,否則檢查配置文件時會報錯,nginx.conf配置文件內(nèi)user為root,找到第三行需要注銷這行
3、允許普通用戶下啟動1024以下端口(應(yīng)用程序端口大于1024的話不用執(zhí)行此步驟)
由于在 linux 下,只有以 root 啟動的進(jìn)程才能監(jiān)聽小于 1024 的端口。nginx 如果設(shè)置了監(jiān)聽 80 或 443 端口,必須得以 root 用戶啟動,所以為了讓普通用戶下啟動nginx,需允許普通用戶可以啟動小于1024端口的進(jìn)程,
Kernel從2.2版本開始,提供了Capabilities功能,它把特權(quán)劃分成不同單元,可以只授權(quán)程序所需的權(quán)限,而非所有特權(quán),具體詳情參考:linux setcap指令,Linux下setcap詳解_燕山美發(fā)的博客-CSDN博客
3.1:在root用戶下輸入命令:setcap cap_net_bind_service=+eip [nginx啟動命令路徑],看到nginx命令會變成紅色,說明成功:
命令擴(kuò)展:# 設(shè)置權(quán)限
setcap cap_net_bind_service=+eip [nginx啟動命令路徑]
# 清除附加權(quán)限
setcap -r [nginx啟動命令路徑]
# 查看附加權(quán)限
getcap [nginx啟動命令路徑]
3.2:查看是否設(shè)置成功(顯示紅色代表允許普通用戶運(yùn)行此程序)
4、關(guān)閉nginx服務(wù)
可以使用命令關(guān)閉nginx:/usr/local/nginx/sbin/nginx -s stop,也可以使用kill -9 pid進(jìn)行殺死程序
5、以普通用戶權(quán)限啟用nginx
切換到普通用戶下執(zhí)行:/usr/local/nginx/sbin/nginx進(jìn)行啟用nginx服務(wù)
6、查看當(dāng)前nginx啟動所屬用戶:此時主進(jìn)程和子進(jìn)程所屬用戶為普通用戶
ps -ef |grep nginx
步驟三:檢查nginx配置是否是正常
1、在root下測試nginx配置是正常的,在普通用戶下測試nginx配置也是正常的。
1.1:在root用戶下測試nginx配置是正常的:/usr/local/nginx/sbin/nginx -t
1.2:在普通用戶下測試nginx配置是正常的:/usr/local/nginx/sbin/nginx -t
至此,nginx在安裝時使用root權(quán)限進(jìn)行安裝并啟用,如何更改為普通用戶權(quán)限運(yùn)行nginx驗證完成
步驟四:回退方案
1、撤銷允許普通用戶下啟動1024以下端口
setcap -r [nginx啟動命令路徑]
2、修改nginx所屬主和所屬組為管理用戶(修改之前nginx所屬主和所屬組為appuser)
在root用戶下執(zhí)行:chown -R root:root /usr/local/nginx/
修改后nginx當(dāng)前所有文件都屬于root權(quán)限
3、修改nginx配置文件
由于nginx安裝時默認(rèn)使用root權(quán)限允許,由于改為普通用戶權(quán)限運(yùn)行nginx,把user這行注釋掉了,否則檢查配置文件時會報錯,找到第三行需要去掉注銷的這行的#,nginx.conf配置文件內(nèi)user為root,
4、關(guān)閉nginx服務(wù)
可以使用命令關(guān)閉nginx:/usr/local/nginx/sbin/nginx -s stop,也可以使用kill -9 pid進(jìn)行殺死程序
5、以root用戶權(quán)限啟用nginx
切換到普通用戶下執(zhí)行:/usr/local/nginx/sbin/nginx進(jìn)行啟用nginx服務(wù)
6、查看當(dāng)前nginx啟動所屬用戶:此時主進(jìn)程和子進(jìn)程所屬用戶為root用戶
ps -ef |grep nginx
7、檢查nginx配置是否是正常
7.1:nginx修改回root權(quán)限運(yùn)行并啟用程序,在root用戶下測試nginx配置是正常的,在普通用戶下測試nginx配置是報錯的
7.1.1:在root用戶下測試nginx配置是正常的:/usr/local/nginx/sbin/nginx -t
7.1.2:在普通用戶下測試nginx配置是報錯的:/usr/local/nginx/sbin/nginx -t
至此,nginx更改為普通用戶權(quán)限運(yùn)行nginx服務(wù)的回退方案驗證完成
最后
深知大多數(shù)初中級Java工程師,想要提升技能,往往是自己摸索成長或者是報班學(xué)習(xí),但對于培訓(xùn)機(jī)構(gòu)動則近萬的學(xué)費(fèi),著實壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《Java開發(fā)全套學(xué)習(xí)資料》送給大家,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時減輕大家的負(fù)擔(dān)。文章來源:http://www.zghlxwxcb.cn/news/detail-722090.html
小編已加密:aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==出于安全原因,我們把網(wǎng)站通過base64編碼了,大家可以通過base64解碼把網(wǎng)址獲取下來。文章來源地址http://www.zghlxwxcb.cn/news/detail-722090.html
到了這里,關(guān)于nginx在安裝時使用root權(quán)限進(jìn)行安裝并啟用,如何更改為普通用戶權(quán)限運(yùn)行nginx(親測)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!