PPP ではカーネルのルーティングテーブルの変更といったネットワークデバイ スを設定する必要があるため、ルート権限が必要になります。
ルート以外のユーザが PPP 接続を設定する場合、pppd プログラムはルートに setuid しておく必要があります。
-r-sr-xr-x 1 root root 95225 Jul 11 00:27 /usr/sbin/pppd
/usr/sbin/pppd がこのような設定になっていない場合、ルートになって
chmod u+s /usr/sbin/pppd
とします。
こうしておけば、ルート以外の一般ユーザが pppd のバイナリを実行しても、 pppd はルート権限で動くようにになり、一般ユーザでもネットワークインター フェイスやカーネルのルーティングテーブルを設定するために必要な権限で pppd を実行することが可能になります。
ルートに setuid されたプログラムは潜在的なセキュリティホールになりがち なので、ルートに setuid する場合は特に注意してください。pppd を含めた ルートに setuid することが必須のプログラムはセキュリティには十分注意を 払って書かれているので、pppd を使う場合、setuid の問題はまず大丈夫でしょ う(しかし保証はありません)
誰でも PPP 接続を開始できるようにするか否かといったシステムの使い方に 合わせて、ppp-on/off スクリプトの読み出しや実行の許可属性を設定してく ださい。あなた一人しかその PC を使わない場合、a+rx でいいでしょう。
しかし、PPP 接続を開始できる人を制限したい場合(例えば、あなたの子供も あなたの Linux マシンにアカウントを持っているけれど、彼らにはインター ネットへ接続させたくない場合)、PPP 接続用のグループを作って(/etc/group を修正して)
-rwxr-x--- 1 root PPP 587 Mar 14 1995 /usr/sbin/ppp-on
-rwxr-x--- 1 root PPP 631 Mar 14 1995 /usr/sbin/ppp-off
このように設定しても、一般ユーザはソフトウェア的には PPP 接続を切れま
せん。ppp-off
スクリプトにはルート権限が必要です。しかしなが
ら、モデムの電源は誰でも切れます!
私が家で使っているマシンでは pppd を root に setuid していません。 PPP を開始するために、私だけが知っているパスワードを使ってルー トになって実行しています。こうしておけば息子たちがインターネットに勝手 に接続することはできません。