BASH Programming - Введение

         

Использование 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 чисто и надежно.



    Содержание раздела