Next Previous Contents

11. 使用 PPP 與 root 權限

因為 PPP 需要設定網路設備,變更核心遞送表格以及諸如此類的動作,所以它需要以 root 的權限來做這些事.

如果 root 以外的使用者要能建立 PPP 連線,那麼 pppd 程式應該設為以 root 的身分執行(setuid):-

-rwsr-xr-x   1 root     root        95225 Jul 11 00:27 /usr/sbin/pppd

如果 /usr/sbin/ppd 不是設定為這樣,那麼以 root 的身分下這個指令:

chmod u+s /usr/sbin/pppd

這樣是讓 pppd 以 root 的權限執行,即使是由一般使用者所執行的. 這能讓一般使用者執行的 pppd 具有必要的權限建立網路界面及核心遞送表格.

以 root 的身分執行的程式在安全上是潛在的漏洞,所以你對於設定為 'setuid' 的程式必須非常地小心. 許多地程式(包括 pppd)已經被小心地撰寫以將用 root 的身分執行的危險降到最低,所以這樣做應該是安全地(不過不保證).

根據你希望你的系統如何運作而定,特別是如果你希望你系統裡的任何使用者都能啟始 PPP 連結,你應該把你的 ppp-on/off 指令稿設定為全部的人都可以讀取/執行.(如果你的 PC 只由你使用那麼這樣大概不錯).

然而,如果你不希望任何人都能起始 PPP 連線(例如,你的孩子在你的 Linux PC 上有帳號而你不希望他們在沒有你的監督下連上網際網路),你將得建立一個 PPP 群組(編輯 /etc/group 檔案)並且:

即使如此,一般使用者仍然無法以軟體的方式中止連結. 執行 ppp-off 指令稿需要 root 的權限.然何,任何使用者都可以關掉數據機(或將電話線由內接式數據機拔下).

另外一種(更好的)辦法,允許使用者使用 sudo 來起動 ppp 連結. 這樣可以提供更佳的安全性並且可以讓你設定讓任何(可信任的)使用者使用指令稿來啟動/結束連結. 使用 sudo 可以讓一位可信任的使用者乾淨而安全地啟動/結束 PPP 連結.


Next Previous Contents