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