PPP HOWTO: Использование PPP и привилегии root

Next Previous Contents

11. Использование PPP и привилегии root

Поскольку PPP должен настроить сетевые устройства, измените таблицу маршрутизации ядра и т.д, что требует привилегий root.

Если пользователи (не root) должны устанавливать PPP соединение, то программа pppd должна были setuid root:

-rwsr-xr-x   1 root     root        95225 Jul 11 00:27  /usr/sbin/pppd
Если /usr/sbin/pppd не setuid, то зарегитрируйтесь как root и дайте команду:
chmod u+s /usr/sbin/pppd
После этого pppd бкдет запускаться с привилегиями root, даже если запущен обычным пользователем. Это позволяет нормальному пользователю выполнять pppd с необходимыми привилегиями, чтобы настроить сетевые интерфейсы и таблицу маршрутизации ядра.

Программы, которые выполняют 'set uid root', являются потенциальными лазейками в защите системы, и вы должны быть чрезвычайно осторожны при создании программ 'suid root'. Ряд программ (включая pppd) был тщательно написан с точки зрения минимизации опасности выполнения suid root, так что вы должны быть защищены (но все-таки гарантий нет).

В зависимости от того, как вы хотите, чтобы ваша система работала - особенно если вы хотите, чтобы ЛЮБОЙ пользователь вашей системы мог инициализировать PPP связь, то вы должны сделать ваш набор скриптов ppp-on/off читаемым/выполнимым. (Наверное это здорово, когда PC используется ТОЛЬКО Вами).

Однако, если вы НЕ хотите, чтобы любой человек мог запускать PPP соединение (например, ваши дети имеет аккаунты на вашем Linux PC, и вы не хотите, чтобы они выходили в Интернет без вашего разрешения), то вы должны будете настроить группу PPP (как root, отредактировать /etc/group) и:

  • сделайте для файла pppd - suid root, владелец root и группа PPP, с очищенными правами 'other'. Это должно затем походить
    -rwsr-x---   1 root     PPP        95225 Jul 11 00:27 /usr/sbin/pppd
    
  • сделайте для скриптов ppp-on\off - владелец root и группа PPP
  • сделайте скрипты ppp-on/off читаемыми/выполнимыми группой PPP
    -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
    
  • обнулите права other для ppp-on/off.
  • добавьте пользователей, которые будут запускать PPP в группу PPP в /etc/group
Даже если вы сделали это, обычные пользователи ВСЕ ЕЩЕ не могут завершить связь программно! Выполнение сценария ppp-off требует привилегий root. Однако, любой пользователь может только выключить модем (или выдернуть телефонную линию из внутреннего модема).

Вариант (и лучший метод), чтобы это настроить, состоит в использовании программы sudo. Она предлагает повышенную защиту и позволит вам настроить систему так, чтобы любой (разрешенный) пользователь мог активизировать/дезактивировать связь, используя скрипты. Использование sudo позволит разрешенному пользователю активизировать/дезактивировать связь PPP чисто и надежно.


Next Previous Contents