第3節 關於linux平台與apache伺服器的必備知識

「第3節 關於linux平台與apache伺服器的必備知識」の編集履歴(バックアップ)一覧はこちら

第3節 關於linux平台與apache伺服器的必備知識」(2005/12/17 (土) 09:48:15) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

<p><font size="3"><span style="font-family: PMingLiU;" lang= "EN-US">linux</span><span style="font-family: PMingLiU;" lang= "ZH-TW">是一個開放的軟體,他有很多迷人的特性,相信只要用過它一次的工程師,不愛上它的人應該是沒有才對。這一套軟體的美好的地方有很多,不過不在本書所應該要包含的範圍裡,不過我們需要</span><span style="font-family: PMingLiU;" lang="EN-US">apache</span><span style="font-family: PMingLiU;" lang= "ZH-TW">這一套全世界最好的</span><span style="font-family: PMingLiU;" lang="EN-US">web</span><span style="font-family: PMingLiU;" lang= "ZH-TW">伺服器來為我們服務的關系,所以借這裡的版面,探討兩個重要的觀念:<br> 一、linux的使用者與群組管理。<br> 二、apache的使用者管理,與basic認証。<br></span></font></p> <p><b><font size="3"><span style="font-family: PMingLiU;" lang= "ZH-TW">一、linux的使用者與群組管理:</span></font></b></p> <p><font size="3"><span style="font-family: PMingLiU;" lang= "ZH-TW">通在在</span><span style="font-family: PMingLiU;" lang= "EN-US">linux</span><span style="font-family: PMingLiU;" lang= "ZH-TW">下執行程式時,權限是很重要的一個觀念,這一個檔案是誰的,誰能夠閱覽,誰能夠編輯,誰能夠執行,都可以明確的設定。因為linux本身專為多人同時使用所設計的一套作業系統,所以在裡頭有非常嚴謹的使用者與使用者郡組的定義。<br> </span></font></p> <p><font size="3"><span style="font-family: PMingLiU;" lang= "ZH-TW">在linux之下,關於使用者與群組管理的命令,常常用的大概有下列幾種:</span></font></p> <ul> <li><font size="3">useradd :註冊一位新的使用者</font></li> <li><font size="3">userdel:刪除一位使用者<br></font></li> <li><font size="3">usermod:修改使用者設定內容<br></font></li> <li><font size="3">passwd:更改使用者的密碼</font></li> <li><font size="3">groupadd :增加群組<br></font></li> <li><font size="3">groupdel:刪除群組<br></font></li> <li><font size="3">groupmod:修改群組詳細設定內容<br></font></li> <li><font size="3">groups:查看當前使用者所參加的群組</font></li> <li><span class="text_import2"><font face="細明體"><font size= "3">chgrp:改變<b>檔案</b>所屬群組</font></font></span></li> <li><font size="3">chown :改變<b>檔案的擁有人</b></font></li> <li><font size="3">chmod :改變<b>檔案</b>的屬性、 SUID、等等的特性</font></li> </ul> <br> 雖然命令很多,但是如果化整為零,其實使用者管理的內容,大多數都記載在/etc/passwd與/etc/group這兩個檔案,大多數的命令也是用來 幫助你修改這兩個檔案的內容。如果說你已經是linux的熟手了,或許你也會像我一樣比較喜歡手動去編輯這兩個檔案的內容。<br> <br> 使用者與群組在linux是重要的觀念,所以有數量相當多的命令,詳細情形請參考linux的相關書藉。這裡只作與nagios使用上相關的簡介。<br> <br> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3">在我們安 裝nagios的時候,需要指定nagios執行之時的使用者帳戶,群組,以及執行命令之時的使用者帳戶,群組。你可以指定任何帳戶,但是通常我們都使用 這些預設值。預設值的使用者帳戶是nagios。群組也是nagios。所以我們必須建立這一個帳戶及這一個用戶之後,才能開始我們的安裝。<br> </font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3">安裝的細節將於後面說明,當一台已經在運行nagios的機器,我們使用ps這個命令可以發現這樣子的資訊:<br> </font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3"><b>nagios </b> 21684 0.0 0.2 5764 1052 ?    S  09:17  0:00 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg<br> <br></font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3">nagios的程序,正在由nagios的使用者所運行著。<br></font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3"><b>nagios </b> 21685 0.0 0.1 1660 596 ?    S  09:17  0:00 /usr/local/nagios/libexec/<b>check_ping</b> -H 192.168.3.214 -w 100.0,20% -c 500.0,60% -p 5<br></font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3"><b>check_ping</b></font></span><span style="font-family: PMingLiU;" lang= "ZH-TW"><font size= "3">這一個命令正在被執行,檢查位於</font></span> <span style= "font-family: PMingLiU;" lang="ZH-TW"><font size= "3">192.168.3.214</font></span> <span style="font-family: PMingLiU;" lang= "ZH-TW"><font size="3">的主機。<br></font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size="3">不只是 nagios的安裝,其實很多其他程式的安裝也是如此。apache也是,雖然啟動主程式的通常是root,但是由root所fork出去的 process,也就是apache所使用來執行cgi,對應使用者對於網頁請求…等等的動作時,所使用的身份,也是必須在apache的設定檔裡來進行 設定。<br></font></span></p> <p><font size="3"><font color="#0000FF"># 語法:<b>User</b>[username/#uid]</font># 說明:設定 httpd這程式的執行者是誰.<br> # 一般是 nobody,也可以是已註冊的 <b>user</b>,若用 <b>user</b>id 要加上 # 號</font></p> <p><br> <font size="3"><font color="#0000FF"># 語法:<b>Group</b>[groupname/#gid]</font># 說明:設定 httpd這程式的執行者所屬的群組<br> # 一般是 nogroup,此 <b>group</b> 必須要存在於 /etc/<b>group</b>中<br> <br></font></p> <p> 當設定完成之後,httpd.conf裡頭應該會有如下所示的兩行:<br> User nobody<br> Group nobody<br></p> <p> 當設定完成,啟動apache時,利用ps這個命令,可以發現,<br> <b>root  </b> 30009 0.0 0.1 12716 792 ?    S  Nov17  0:37 /servers/apache/bin/httpd -k start<br> <b>nobody </b> 4075 0.0 0.3 12852 1748 ?    S  Dec06  0:01 /servers/apache/bin/httpd -k start<br> <b>nobody </b> 4076 0.0 0.3 12924 1752 ?    S  Dec06  0:02 /servers/apache/bin/httpd -k start<br> <b>nobody </b> 4077 0.0 0.3 12852 1748 ?    S  Dec06  0:01 /servers/apache/bin/httpd -k start<br></p> <p> 除了主要的process是root之外(因為我們是由root來啟動apache的),其余的子process都是nobody。<br> </p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size="3">熟悉 windows的人可能一開始會覺得麻煩。因為在windows裡通常安裝一個程式,只要選擇setup.exe 或 install.exe,就可以輕鬆的完成,windows很多細節都幫我們包裝起來了。在linux裡頭,由於一提到linux系列的作業系統,令人想 到的都是放在機房裡的大型主機,或是與server這個字會扯上一些關系,server通常必須要回應來個於client的請求,以及很多使用者的遠端登 入,所以說,落實使用者管理是一件非常基要的問題,而且這種管理也與安全性習習相關。<br> </font></span></p> <font size="3"><br> <br></font> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3">但是,apache必須要執行nagiois套件裡頭的cgi程式。所以nagios的程式,必須是要能夠被nobody所執行,所以簡單的說,我們必須將nagios的檔案,除了nagios本身可以執行之外,也要能夠讓nobody也可以執行。</font></span></p> <p><font size="3">以下是常常使用的命令:</font></p> <p><font size="3"><!--StartFragment --></font></p> <ul> <li style= "list-style-type: none; list-style-image: none; list-style-position: outside;"> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3">以上說明了linuix的身份。我們接下來要進行的設定,與apache也是習習相關,我們知道,我們常常在某個網站登入會員,這種使用者的觀念其實在到處都可以見到。apache裡頭也有這樣子的概念。接下來我們要來看看如何在apache裡面,設定使用者。</font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3">因為nagios可以接受外部來的命令,所以我們可以在網路上直接對它來進行設定,但是為了增加安全性,必須要事先在nagios裡指定誰能夠執行這些命令。那一個身份的使用者可以執行那些命令。</font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3">比方說你如果是經理,那你就有可以執行申請預算的命令,你如果是員工,那你就無法自已執行,可能要透過你的經理。類似這種概念,我們可以用以下的命令在apache裡增加使用者。</font></span></p> <p><font size="3"><!--StartFragment --></font></p> <p><font color="#0000FF" size="3">htpasswd 說明:</font></p> <blockquote> <p><font face="Courier" size="3">htpasswd -{option} {passwd_file}{user}</font></p> <p><font size="3">option 可使用:</font></p> <ul> <li><font size="3">-m 使用 MD5 編碼</font></li> <li><font size="3">-c 建立新的密碼檔</font></li> <li><font size="3">-b 附帶有 "密碼"(不用再輸入一次密碼)</font></li> </ul> </blockquote> <p><font size="3">建立 steven 的帳號密碼:</font></p> <table border="0" cellpadding="0" cellspacing="0" width="75%"> <tbody> <tr> <td class="BbGf"><font size="3">[root@mailgw http_auth_users]# htpasswd -m.htpasswd steven<br> New password:<br> Re-type new password:<br> Adding password for user steven<br> [root@mailgw http_auth_users]#</font></td> </tr> </tbody> </table> <p><font size="3">現在開啟您的 Broser,輸入http://{Your_URL}/{Need_Password_Dir} 本例為http://www.abc.com.tw/secure_data 時就會出現認證畫面了。</font></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3">增加了這些使用者之後,當我們訪問nagios時,會出現這樣子的畫面:</font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size="3"><img src= "http://ms.ntcb.edu.tw/%7Esteven/article/images/apache2_security-01.gif" height="208" width="355"></font></span></p> <p><font size= "3">這個時候我們只要輸入剛剛我們所建立的使用者id以及密碼之後,我們就具有了這一個使用者的身份。</font></p> <p><font size= "3">我們可以看一下apache所吐出的log,確認一下是否我們已經成為這種身份。</font></p> <p><font size= "3">這一種身份就是nagios裡,可以用來設定那種身份,可以執行何種命令的一個依據。</font></p> <p><font size= "3">如果看一下以下的圖應該可以簡單的了解到,nagios</font></p> </li> </ul> <p><font size="3">此 外,nagios在監視之時,所使用的是nagios的身份,這個身份在大多的時候都沒有問題。不過,在nagios活用裡,我們常常需要執行一些不是 nagios的身份所能夠達行的事情。比方說,我們要重新啟動某個服務。在liunx裡,要啟動什麼服務通常都需要具有root的身份,這個時候我們可以 活用suid來幫助我們解決這一個問題。</font></p> <p><font size="3"><!--StartFragment --></font></p> <p><font size="3"><b>SUID</b> 和 <b>SGID</b> 。UID 和 GID您應該知道了吧﹖您執行 id 這個命令就可以看出來自己是的ID 是什麼。當您在 <b>Linux</b>系統上面執行一個<b>檔案</b>的時候(具有 xpermission)﹐這個<b>檔案</b>所執行的程式﹐所具備的<b>權限</b>﹐就以執行者的ID 為準﹕如果您是 root﹐那麼這個程式也是以 root的<b>權限</b>執行﹔如果您是 user1﹐那就以 user1的<b>權限</b>執行。但如果﹐一個執行檔還具有 <b>SUID</b>屬性的話﹐那這個程式所具有的<b>權限</b>﹐就不是命令的執行者﹐而是<b>檔案</b>的擁有者﹕如果一個<b>檔案</b>具備<b>SUID</b> 屬性﹐它的 user 和 group 都是 root﹐而且 others也具有 x <b>權限</b>﹐那麼﹐當 user1執行這個<b>檔案</b>的時候﹐程式所具有的<b>權限</b>就不是user1 而是 root﹗同樣﹐如果 SGID也打開了﹐那麼這個程式也具有<b>檔案</b>之 goup群組相同的<b>權限</b>。</font></p> <p><font size= "3">這樣的設計﹐是讓一些普通使用者以<b>檔案</b>擁有者的<b>權限</b>去執行某些程式。例如﹕某些程式﹐如passwd (您不妨輸入 ls -l /usr/bin/passwd看看)﹐需要寫入<b>檔案</b>系統中使用者本身不能存取的位置(如/etc/shadow)﹐如果沒有 <b>SUID</b> 和 SGID屬性﹐那這樣的設計是沒辦法做到的。不過﹐這樣的設計﹐也同時帶來了系統上的安全威脅。比方說﹕系統被植入一個擁有者為root 的後門程式﹐它能抓取只有 root才能讀取的密碼<b>檔案</b>。如果在沒有 <b>SUID</b>的情況之下﹐就算是一般用戶執行它﹐也沒辦法達到目的﹐因為程式只具備一般用戶的身份而已﹔但如果這個程式有設定<b>SUID</b>﹐就算一般用戶執行它﹐也能得逞﹗</font></p> <br> <p class="MsoNormal"><br></p>
<p><font size="3"><span style="font-family: PMingLiU;" lang= "EN-US">linux</span><span style="font-family: PMingLiU;" lang= "ZH-TW">是一個開放的軟體,他有很多迷人的特性,相信只要用過它一次的工程師,不愛上它的人應該是沒有才對。這一套軟體的美好的地方有很多,不過不在本書所應該要包含的範圍裡,不過我們需要</span><span style="font-family: PMingLiU;" lang="EN-US">apache</span><span style="font-family: PMingLiU;" lang= "ZH-TW">這一套全世界最好的</span><span style="font-family: PMingLiU;" lang="EN-US">web</span><span style="font-family: PMingLiU;" lang= "ZH-TW">伺服器來為我們服務的關系,所以借這裡的版面,探討兩個重要的觀念:<br> 一、linux的使用者與群組管理。<br> 二、apache的使用者管理,與basic認証。<br></span></font></p> <p><b><font size="3"><span style="font-family: PMingLiU;" lang= "ZH-TW">一、linux的使用者與群組管理:</span></font></b></p> <p><font size="3"><span style="font-family: PMingLiU;" lang= "ZH-TW">通在在</span><span style="font-family: PMingLiU;" lang= "EN-US">linux</span><span style="font-family: PMingLiU;" lang= "ZH-TW">下執行程式時,權限是很重要的一個觀念,這一個檔案是誰的,誰能夠閱覽,誰能夠編輯,誰能夠執行,都可以明確的設定。因為linux本身專為多人同時使用所設計的一套作業系統,所以在裡頭有非常嚴謹的使用者與使用者郡組的定義。<br> </span></font></p> <p><font size="3"><span style="font-family: PMingLiU;" lang= "ZH-TW">在linux之下,關於使用者與群組管理的命令,常常用的大概有下列幾種:</span></font></p> <ul> <li><font size="3">useradd :註冊一位新的使用者</font></li> <li><font size="3">userdel:刪除一位使用者<br></font></li> <li><font size="3">usermod:修改使用者設定內容<br></font></li> <li><font size="3">passwd:更改使用者的密碼</font></li> <li><font size="3">groupadd :增加群組<br></font></li> <li><font size="3">groupdel:刪除群組<br></font></li> <li><font size="3">groupmod:修改群組詳細設定內容<br></font></li> <li><font size="3">groups:查看當前使用者所參加的群組</font></li> </ul> <br> 雖 然命令很多,但是如果化整為零,其實使用者管理的內容,大多數都記載在/etc/passwd與/etc/group這兩個檔案,大多數的命令也是用來幫 助你修改這兩個檔案的內容。如果說你已經是linux的熟手了,或許你也會像我一樣比較喜歡手動去編輯這兩個檔案的內容。<br> <br> 使用者與群組在linux是重要的觀念,所以有數量相當多的命令,詳細情形請參考linux的相關書藉。這裡只作與nagios使用上相關的簡介。<br> <br> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size="3">在 我們安裝nagios的時候,需要指定nagios執行之時的使用者帳戶,群組,以及執行命令之時的使用者帳戶,群組。你可以指定任何帳戶,但是通常我們 都使用這些預設值。預設值的使用者帳戶是nagios。群組也是nagios。所以我們必須建立這一個帳戶及這一個用戶之後,才能開始我們的安裝。<br> </font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3">安裝的細節將於後面說明,當一台已經在運行nagios的機器,我們使用ps這個命令可以發現這樣子的資訊:<br> </font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3"><b>nagios </b> 21684 0.0 0.2 5764 1052 ?    S  09:17  0:00/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg<br> <br></font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3">nagios的程序,正在由nagios的使用者所運行著。<br></font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3"><b>nagios </b> 21685 0.0 0.1 1660 596 ?    S  09:17  0:00/usr/local/nagios/libexec/<b>check_ping</b> -H 192.168.3.214 -w 100.0,20% -c500.0,60% -p 5<br></font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3"><b>check_ping</b></font></span><span style="font-family: PMingLiU;" lang= "ZH-TW"><font size="3">這一個命令正在被</font></span><span style= "font-family: PMingLiU;" lang="ZH-TW"><font size= "3"><b>nagios</b></font></span><span style="font-family: PMingLiU;" lang= "ZH-TW"><font size="3">執行,檢查位於</font></span> <span style= "font-family: PMingLiU;" lang="ZH-TW"><font size= "3">192.168.3.214</font></span> <span style="font-family: PMingLiU;" lang= "ZH-TW"><font size="3">的主機。<br></font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size="3">不 只是nagios的安裝,其實很多其他程式的安裝也是如此。apache也是,雖然啟動主程式的通常是root,但是由root所fork出去的 process,也就是apache所使用來執行cgi,對應使用者對於網頁請求…等等的動作時,所使用的身份,也是必須在apache的設定檔裡來進行 設定。<br></font></span></p> <p><font size="3"><font color= "#0000FF">#語法:<b>User</b>[username/#uid]</font><br> # 說明:設定httpd這程式的執行者是誰.<br> # 一般是 nobody,也可以是已註冊的 <b>user</b>,若用<b>user</b>id 要加上 # 號</font></p> <p><br> <font size="3"><font color= "#0000FF">#語法:<b>Group</b>[groupname/#gid]</font><br> # 說明:設定httpd這程式的執行者所屬的群組<br> # 一般是 nogroup,此 <b>group</b> 必須要存在於/etc/<b>group</b>中<br> <br></font></p> <p> 當設定完成之後,httpd.conf裡頭應該會有如下所示的兩行:<br> User nobody<br> Group nobody<br></p> <p> 當設定完成,啟動apache時,利用ps這個命令,可以發現,<br> <b>root  </b> 30009 0.0 0.1 12716 792 ?    S  Nov17  0:37/servers/apache/bin/httpd -k start<br> <b>nobody </b> 4075 0.0 0.3 12852 1748 ?    S  Dec06  0:01/servers/apache/bin/httpd -k start<br> <b>nobody </b> 4076 0.0 0.3 12924 1752 ?    S  Dec06  0:02/servers/apache/bin/httpd -k start<br> <b>nobody </b> 4077 0.0 0.3 12852 1748 ?    S  Dec06  0:01/servers/apache/bin/httpd -k start<br></p> <p> 除了主要的process是root之外(因為我們是由root來啟動apache的),其余的子process都是nobody。<br> </p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size="3">熟 悉windows的人可能一開始會覺得麻煩。因為在windows裡通常安裝一個程式,只要選擇setup.exe或install.exe,就可以輕鬆 的完成,windows很多細節都幫我們包裝起來了。在linux裡頭,由於一提到linux系列的作業系統,令人想到的都是放在機房裡的大型主機,或是 與server這個字會扯上一些關系,server通常必須要回應來個於client的請求,以及很多使用者的遠端登入,所以說,落實使用者管理是一件非 常基要的問題,而且這種管理也與安全性習習相關。<br></font></span></p> <font size= "3">再度以nagios為例子,我們先看看下面這一張圖:<br> <br> nagios的deamon執行plugin之後取得結果,將結果放在檔案裡保存。而apache,也就是nobody這一個角色,執行cgi,來查看執行的結果檔案,這些cgi種類很多,但是擁有者都是nagios。<br> 這造成了一個問題,apache需要執行cgi,但是apache的身份是nobody,而這些cgi的擁有者是nagios。nobody想要去執行 nagios的程式,就好象是有一個路人跑到你家來跟你借廁所一樣的非常突兀。通常的情況是不語可的,除非你將這些cgi的權限設定成任何人都可以隨意使 用。<br> 但是我們又不想要這麼做,我們只想要讓nobody與nagios這兩個使用者能夠使用,其他人因為完全不相關,所以並不想要開發權限給他們,以免造成安全上的問題。<br> 為了解決這個需求,我們必須用到另外一個觀念,也就是群組(group)。此時我們需要與以下的命令交互使用:<br> </font> <ul> <li><span class="text_import2"><font face="細明體"><font size= "3">chgrp:改變<b>檔案</b>所屬群組</font></font></span></li> <li><font size="3">chown :改變<b>檔案的擁有人</b></font></li> <li><font size="3">chmod :改變<b>檔案</b>的屬性、SUID、等等的特性</font></li> </ul> 這些命令可以幫助我們,將檔案指定給我們已經設定好的群組以及使用者。<br> <br> <font size="3"><br> <br></font> <p><b><font size="3"><span style="font-family: PMingLiU;" lang= "ZH-TW">二、apache的使用者管理,與basic認証</span></font></b></p> <p><font size="3">以下是常常使用的命令:</font></p> <p><font size="3"><!--StartFragment --></font></p> <ul> <li style= "list-style-type: none; list-style-image: none; list-style-position: outside;"> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3">以上說明了linuix的身份。我們接下來要進行的設定,與apache也是習習相關,我們知道,我們常常在某個網站登入會員,這種使用者的觀念其實在到處都可以見到。apache裡頭也有這樣子的概念。接下來我們要來看看如何在apache裡面,設定使用者。</font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3">因為nagios可以接受外部來的命令,所以我們可以在網路上直接對它來進行設定,但是為了增加安全性,必須要事先在nagios裡指定誰能夠執行這些命令。那一個身份的使用者可以執行那些命令。</font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3">比方說你如果是經理,那你就有可以執行申請預算的命令,你如果是員工,那你就無法自已執行,可能要透過你的經理。類似這種概念,我們可以用以下的命令在apache裡增加使用者。</font></span></p> <p><font size="3"><!--StartFragment --></font></p> <p><font color="#0000FF" size="3">htpasswd 說明:</font></p> <blockquote> <p><font face="Courier" size="3">htpasswd -{option}{passwd_file}{user}</font></p> <p><font size="3">option 可使用:</font></p> <ul> <li><font size="3">-m 使用 MD5 編碼</font></li> <li><font size="3">-c 建立新的密碼檔</font></li> <li><font size="3">-b 附帶有"密碼"(不用再輸入一次密碼)</font></li> </ul> </blockquote> <p><font size="3">建立 steven 的帳號密碼:</font></p> <table border="0" cellpadding="0" cellspacing="0" width="75%"> <tbody> <tr> <td class="BbGf"><font size="3">[root@mailgw http_auth_users]# htpasswd-m.htpasswd steven<br> New password:<br> Re-type new password:<br> Adding password for user steven<br> [root@mailgw http_auth_users]#</font></td> </tr> </tbody> </table> <p><font size= "3">現在開啟您的Broser,輸入http://{Your_URL}/{Need_Password_Dir}本例為http://www.abc.com.tw/secure_data時就會出現認證畫面了。</font></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size= "3">增加了這些使用者之後,當我們訪問nagios時,會出現這樣子的畫面:</font></span></p> <p><span style="font-family: PMingLiU;" lang="ZH-TW"><font size="3"><img src= "http://ms.ntcb.edu.tw/%7Esteven/article/images/apache2_security-01.gif" height="208" width="355"></font></span></p> <p><font size= "3">這個時候我們只要輸入剛剛我們所建立的使用者id以及密碼之後,我們就具有了這一個使用者的身份。</font></p> <p><font size= "3">我們可以看一下apache所吐出的log,確認一下是否我們已經成為這種身份。</font></p> <p><font size= "3">這一種身份就是nagios裡,可以用來設定那種身份,可以執行何種命令的一個依據。</font></p> <p><font size= "3">如果看一下以下的圖應該可以簡單的了解到,nagios</font></p> </li> </ul> <p><font size="3">此 外,nagios在監視之時,所使用的是nagios的身份,這個身份在大多的時候都沒有問題。不過,在nagios活用裡,我們常常需要執行一些不是 nagios的身份所能夠達行的事情。比方說,我們要重新啟動某個服務。在liunx裡,要啟動什麼服務通常都需要具有root的身份,這個時候我們可以 活用suid來幫助我們解決這一個問題。</font></p> <p><font size="3"><!--StartFragment --></font></p> <p><font size="3"><b>SUID</b> 和 <b>SGID</b> 。UID 和GID您應該知道了吧﹖您執行 id這個命令就可以看出來自己是的ID 是什麼。當您在<b>Linux</b>系統上面執行一個<b>檔案</b>的時候(具有xpermission)﹐這個<b>檔案</b>所執行的程式﹐所具備的<b>權限</b>﹐就以執行者的ID為準﹕如果您是 root﹐那麼這個程式也是以root的<b>權限</b>執行﹔如果您是 user1﹐那就以user1的<b>權限</b>執行。但如果﹐一個執行檔還具有<b>SUID</b>屬性的話﹐那這個程式所具有的<b>權限</b>﹐就不是命令的執行者﹐而是<b>檔案</b>的擁有者﹕如果一個<b>檔案</b>具備<b>SUID</b>屬性﹐它的 user 和 group 都是 root﹐而且 others也具有 x<b>權限</b>﹐那麼﹐當user1執行這個<b>檔案</b>的時候﹐程式所具有的<b>權限</b>就不是user1而是 root﹗同樣﹐如果SGID也打開了﹐那麼這個程式也具有<b>檔案</b>之goup群組相同的<b>權限</b>。</font></p> <p><font size= "3">這樣的設計﹐是讓一些普通使用者以<b>檔案</b>擁有者的<b>權限</b>去執行某些程式。例如﹕某些程式﹐如passwd(您不妨輸入 ls -l/usr/bin/passwd看看)﹐需要寫入<b>檔案</b>系統中使用者本身不能存取的位置(如/etc/shadow)﹐如果沒有<b>SUID</b> 和SGID屬性﹐那這樣的設計是沒辦法做到的。不過﹐這樣的設計﹐也同時帶來了系統上的安全威脅。比方說﹕系統被植入一個擁有者為root的後門程式﹐它能抓取只有root才能讀取的密碼<b>檔案</b>。如果在沒有<b>SUID</b>的情況之下﹐就算是一般用戶執行它﹐也沒辦法達到目的﹐因為程式只具備一般用戶的身份而已﹔但如果這個程式有設定<b>SUID</b>﹐就算一般用戶執行它﹐也能得逞﹗</font></p> <br> <p class="MsoNormal"><br></p>

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。