用非root使用者啟動Apache|Nginx的方法
眾所周知,apache的80埠為系統保留埠,如果透過其他非root使用者啟動,會報錯如下:
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
因為普通使用者只能用1024以上的埠,1024以內的埠只能由root使用者使用。
但是為了避免每次啟動都透過root使用者,可以透過set UID的方式來解決此問題。
一次性進行如下操作即可完成。
在root使用者環境中做如下操作
cd ……/apache/bin
chown root httpd
chmod u+s httpd
再 su - USERNAME
到普通使用者下,透過
……/apache/bin/apachectl start即可
為何不chmod u+s apachectl呢?
因為set UID這種方式只針對二進位制檔案有效,而tail一下apachectl發現:
apachectl是一個指令碼檔案,仔細查閱發現有如下一句
HTTPD='/home/……/apache/bin/httpd'
得出結論:apachectl指令碼是透過啟動httpd檔案來啟動整個httpd服務。
再次cat httpd,出現各種不可讀亂碼,ctrl+c結束輸出之後,斷定httpd為二進位制檔案。
最後chmod u+s httpd即可,當然得保證httpd的所屬者為root使用者,如果不是,執行:
chown root httpd即可。
同樣,nginx啟動也如此,用root使用者進入....nginx/sbin
然後chown root nginx
chmod u+s nginx
然後透過普通使用者就可以啟動了。
再同樣,tomcat也如此。
當然,修改預設埠到大於1024也是可以的。
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
因為普通使用者只能用1024以上的埠,1024以內的埠只能由root使用者使用。
但是為了避免每次啟動都透過root使用者,可以透過set UID的方式來解決此問題。
一次性進行如下操作即可完成。
在root使用者環境中做如下操作
cd ……/apache/bin
chown root httpd
chmod u+s httpd
再 su - USERNAME
到普通使用者下,透過
……/apache/bin/apachectl start即可
為何不chmod u+s apachectl呢?
因為set UID這種方式只針對二進位制檔案有效,而tail一下apachectl發現:
apachectl是一個指令碼檔案,仔細查閱發現有如下一句
HTTPD='/home/……/apache/bin/httpd'
得出結論:apachectl指令碼是透過啟動httpd檔案來啟動整個httpd服務。
再次cat httpd,出現各種不可讀亂碼,ctrl+c結束輸出之後,斷定httpd為二進位制檔案。
最後chmod u+s httpd即可,當然得保證httpd的所屬者為root使用者,如果不是,執行:
chown root httpd即可。
同樣,nginx啟動也如此,用root使用者進入....nginx/sbin
然後chown root nginx
chmod u+s nginx
然後透過普通使用者就可以啟動了。
再同樣,tomcat也如此。
當然,修改預設埠到大於1024也是可以的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-1377290/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 01_Ubuntu啟用root使用者Ubuntu
- Solaris啟動無需輸入密碼直接用root身份登陸,啟動Xwindows的方法密碼Windows
- Linux中如何啟用root使用者Linux
- nginx關閉/重啟/啟動的操作方法Nginx
- 使用root使用者啟動hadoop報錯Hadoop
- Ubuntu Linux中如何啟用root使用者UbuntuLinux
- 解決非root使用者使用docker的辦法Docker
- Ambari非root使用者安裝步驟
- root使用者啟動過weblogic後遺症Web
- RAC OCSSD程式被KILL引起系統重啟--非root使用者也能重啟OSCSS
- linux 非root使用者原始碼安裝Linux原始碼
- Docker非root使用者修改/etc/hosts檔案Docker
- EBS R12中修改apache對應的埠為1024以下(80)並使用非root開啟Apache
- 給非 root 使用者新增 docker 使用許可權Docker
- Ubuntu 修改使用者密碼與啟動root賬號Ubuntu密碼
- Ubuntu 啟用 root 賬戶Ubuntu
- 在Linux裡安裝和啟動nginx的方法LinuxNginx
- Nginx的啟動過程Nginx
- mongoDB因root啟動關閉資料庫導致mongo普通使用者無法啟動MongoDB資料庫
- ElasticSearch 安裝root使用者啟動失敗問題解決Elasticsearch
- 在 Mac OS X 中啟用和使用“root”使用者(雪豹版)Mac
- ubuntu 12.04 root使用者登入的方法Ubuntu
- Win10系統啟動Apache失敗的解決方法Win10Apache
- Ubuntu 中啟用 root 帳號Ubuntu
- Nginx啟動不了報錯未找到命令的解決方法(- bash: nginx: 未找到命令)Nginx
- Nginx(alias 和 root的區別)Nginx
- windows10系統下apache啟動失敗的解決方法WindowsApache
- nginx啟動,停止命令Nginx
- nginx開機啟動Nginx
- Apache和 nginxApacheNginx
- Nginx vs ApacheNginxApache
- nginx的啟動、關閉和平滑重啟(=)Nginx
- Winginx nginx 啟動提示80埠被佔用Nginx
- 安裝XAMPP時啟動Apache失敗解決方法 xamppApache
- nginx面試題-nginx和apache的區別Nginx面試題Apache
- mysql誤刪root使用者或者忘記root密碼解決方法MySql密碼
- ubuntu22.04桌面版開啟root使用者登陸並開啟root使用者遠端ssh連線Ubuntu
- 【Windows】Apache的下載、安裝、啟動WindowsApache