1. 程式人生 > >Linux非root使用者如何使用80埠啟動程式

Linux非root使用者如何使用80埠啟動程式

預設情況下Linux的1024以下埠是隻有root使用者才有許可權佔用,我們的tomcat,apache,nginx等等程式如果想要用普通使用者來佔用80埠的話就會丟擲java.net.BindException: Permission denied:80的異常。 

bind時perror提示錯誤資訊:permission denied


解決辦法有兩種: 

1.使用非80埠啟動程式,然後再用iptables做一個埠轉發。 

  iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 



  用root使用者直接去執行就可以了! 


2.假設我們需要啟動的程式是nginx,那麼這麼做也可以達到目的。 

一開始我們檢視nginx的許可權描述: 

-rwxr-xr-x 1 nginx dev 2408122 Sep  5 16:01 nginx 

這個時候必然是無法正常啟動的。 

首先修改檔案所屬使用者為root: 

chown root nginx 

然後再加上s許可權: 

chmod u+s nginx 

再次檢視許可權描述的時候: 

-rwsr-xr-x 1 root root 2408122 Sep  5 16:01 nginx 

這樣就能啟動了。

相關推薦

Linuxroot使用者如何使用80啟動程式

預設情況下Linux的1024以下埠是隻有root使用者才有許可權佔用,我們的tomcat,apache,nginx等等程式如果想要用普通使用者來佔用80埠的話就會丟擲java.net.BindException: Permission denied:80的異常。  bin

linux root啟動方式

在非root使用者下執行低埠的方法 1、使用iptables 轉發 埠 2、authbind 3、jsvc 針對tomcat 4、CAP_NET_BIND_SERVICE 只可以運用到可執行檔案本身   # 待續

幸運28平臺租用與Linuxroot

所有 服務 3.1 native 程序 dev apach com 找到 1.安裝jdk與tomcat 安裝目錄為/usr/local/apache-tomcat-8.0.52 步驟略 2.創建用戶 tomcat並設置其不可登錄 其命令 #useradd -s /usr/s

Linux下Tomcat配置80 - 80指向8080 (測試可用)

1.重將Tomcat的埠(server.xml)由80改回8080。 2 2. 通過Iptables埠實現80到8080的轉發,命令為:iptables -t nat -A PREROUTING -p tcp --dpor

Linuxroot使用者安裝python

一句即可: pip install opencv-contrib-python opencv-python 簡單粗暴,如果要自己編譯,則需要sudo許可權。這句可以不用許可權,就能直接安裝上

Linux系統Tomcat使用80對映到8080的方法

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 -t nat : 指出我要操作什麼表.(不寫就表示filter.預設是filter) -A PR

Linux(CentOS6.8) 開放8033066379,配置防火牆命令

vim 開啟配置檔案: 編輯防火強配置檔案 vim /etc/sysconfig/iptables 1.只對本機和126.212.173.185開放6379埠,其他ip用telnet是無法連線的,

Linux下Tomcat使用80

應用場景 很多情況下,我們在linux伺服器上安裝了tomcat或者nginx之類的軟體. 當我們想用80埠的時候,如果不用root使用者啟動就會報錯. 這是因為,對於lin

linux根據程序號PID查詢啟動程式的全路徑(程式實現根據PID程序號得到程序名字或根據程序名字取得程序號)

sam9x25-linux login: root Password:  [email protected]:~ cd app [email protected]:~/app ps   PID TTY          TIME CMD   749 tt

linux root使用者安裝 jdk 和 tomcat

四、部署 tomcat1、將apache-tomcat-6.0.20.tar.gz上傳到伺服器上 2、解壓檔案,出現目錄 apache-tomcat-6.0.20 [[email protected]_test ~]$ tar zxvf apache-tom

linuxroot下安裝CUDA

1.首先檢視自己系統的資訊 uname -a lsb_release -a 這是我們的資訊 於是根據版本來然後去官網選擇對應版本下載,cuda 安裝成功後用winscp上傳檔案到伺服器 2.安裝cuda (1)在檔案目錄下執行, bash+檔名 bash

Linux配置防火牆 開啟80的方法

在虛擬機器裡裝了nginx+mysql+php,虛擬機器裡的桌面可以訪問, netstat -ntlp | grep 80lsof -i:80 也有對應的埠資訊。 但是虛擬機器外面通過ip訪問卻訪問不了。iptables -L -n 檢視防火牆設定,發現沒有開啟80埠。

linuxroot使用者切換到root使用者

1)如果想一直使用root許可權,要通過su切換到root使用者那我們首先要重設定root使用者的密碼:sudo passwd root這樣就可以設定root使用者的密碼了。2)之後就可以自由的切換到root使用者了su輸入root使用者的密碼即可。su "king" 或者

Linuxroot使用者安裝MySQL

1.下載MYSQL原始碼:選擇最後一項“Source Code”2.解包: $tar zxvf mysql-5.0.67.tar.gz $cd mysql-5.0.67 3.編譯:5.1及之前版本用configure進行編譯,5.1之後的版本用cmake進行編譯。這裡安

linux根據程序號PID查詢啟動程式的全路徑

       工作環境中遇到網路不正常,檢測是某伺服器異常往外發送資料包,使用netstat命令檢視,發現有程式.IptabLex的這個程序狀態為異常連線.無法有效清除,因此想知道是哪個目錄的此程式處於僵死狀態. [[email protected] /]# n

linuxroot使用者下安裝軟體,搭建生產環境

之前的用實驗室的伺服器,因為某些原因,使用的使用者沒有root許可權。linux的非root使用者很多軟體無法安裝,非常的不方便。我的方法是使用brew來代替系統的包管理工具。brew是最先用在mac上的包管理工具,可以將所有的包託管在user本地的環境內。下面的文件中執行的時候記得將使用者名稱改成自己的。

linux指定某root用戶執行開機啟動項的方法(gogs git)

inux sharp har 登錄 末尾 啟動項 oot brush amp 以linux指定git用戶在linux開機時執行啟動gogs git為例: 以root登錄linux 執行vi /etc/rc.d/rc.local 在文檔末尾添加一行語句:s

Udev規則及Linuxroot使用者使用串列的許可權設定

系統 Ubuntu 16.04 LTS Linux下的裝置使用都需要使用sudo或root使用者才能開啟,為了能讓普通使用者也能使用串列埠,有以下兩種方法: 1、可以增加udev規則來實現,具體方法如下: sudo vim /etc/udev/rules.

linux】ubantu下Apache無法啟動80被佔用)

本來今天回來想晚會bootstarp的,但是發現ubantu下80埠被佔用,apache無法啟動,很是蛋疼! 索性又學裡一招,檢視80埠被哪個貨佔用裡哈哈哈哈! 開啟終端輸入netstat -lnp|

關於虛擬機器VM中的Linux啟動Nginx時出現80被佔用問題的解決

我用的虛擬機器是VM,Linux版本是CentOS6.3。在安裝完Nginx之後,準備啟動Nginx服務。 切到目錄: [[email protected] ~]# cd /usr/local/nginx/sbin [[email protected