
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.176] |
![]() |
|
Сообщ.
#1
,
|
|
|
Всем привет!
Уважаемые форумчане, прошу совета или намека куда копнуть. OS: Debian etch Пытаюсь сделать чтобы непривелегированный пользователь (назовем его internet) мог поднять vpn-соединение. Пользователь занесен в группу dip. Через sudo pon [provider] всё работает. А если просто pon [provider] вот такие вещи дает в /var/log/syslog: ![]() ![]() Jan 12 11:37:58 localhost pppd[32433]: pppd 2.4.4 started by internet, uid 1003 Jan 12 11:37:58 localhost pptp[32434]: anon log[main:pptp.c:267]: The synchronous pptp option is NOT activated Jan 12 11:37:58 localhost pptp[32434]: anon warn[pptp_gre_bind:pptp_gre.c:82]: socket: Operation not permitted Jan 12 11:37:58 localhost pptp[32434]: anon fatal[main:pptp.c:275]: Cannot bind GRE socket, aborting. Jan 12 11:37:58 localhost pppd[32433]: Couldn't get channel number: Input/output error Jan 12 11:37:58 localhost pppd[32433]: Script /usr/sbin/pptp 10.1.255.250 --nolaunchpppd finished (pid 32434), status = 0x1 Jan 12 11:37:58 localhost pppd[32433]: Exit. гуглил и 2, и 3, и 4 строки... но разумного ничего не накопал. Заранее спасибо. Добавлено Продолжая гуглить нашел ответ. вот привожу что накопал из какого то форума. мне лично помог только пункт 1. Но там внизу в принципе есть пояснения для ВСЕХ шагов - может кому поможет. Вопрос решен. Всем спасибо ![]() Debian + PPTP. Запуск pon/poff из-под обычного пользователя. Алгоритм следующий (все шаги выполняются из-под рута... ну, или с использованием sudo): 1. Установить suid-бит на pptp. ![]() ![]() root# chmod u+s `which pptp` 2. Узнать полный путь к pptp. ![]() ![]() root# which pptp 3. Записать полный путь к pptp (который был выведен на предыдущем шаге) в соответствующий файл описания связи с провайдером (в файл из /etc/ppp/peers): * открываем требуемый файл (например, /etc/ppp/peers/server); * находим строчку, содержащую вызов команды pptp: ![]() ![]() pty "pptp 172.16.5.1 --nolaunchpppd" * изменяем эту строчку так, чтобы вызов команды pptp производился по полному пути (допустим, на предыдущем шаге команда which pptp вывела /usr/sbin/pptp): ![]() ![]() pty "/usr/sbin/pptp 172.16.5.1 --nolaunchpppd" * сохраняем изменённый файл. 4. Добавить пользователя в группу dip. Вместо user следует подставить имя пользователя, из-под которого требуется запускать pon/poff. ![]() ![]() root# usermod -aG dip user 5. После всего этого следует перелогиниться (выйти из-под учётной записи пользователя и войти обратно). Всё, теперь команды pon server и poff server должны работать из-под user'а и соединять с требуемым провайдером (вместо server, соответственно, необходимо подставить имя файла, который был изменён на 3-ем шаге). В дальнейшем, чтобы позволить любому другому пользователю запускать pon/poff достаточно добавить его в группу dip и перелогиниться. Шаги 1-2 повторять необязательно. Шаг 3 (указание полного пути к pptp) нужно учитывать при создании новых файлов в /etc/ppp/peers. Краткие пояснения по шагам: * в Debian скриптами pon/poff (и программой pppd) по умолчанию имеют право пользоваться только пользователи из группы dip (ну, и, естественно, root). * если не поставить suid-бит на pptp, то при запуске из-под обычного пользователя он не получит доступ к требуемому им сокету: возникнет ошибка вида ![]() ![]() anon warn[pptp_gre_bind:pptp_gre.c:82]: socket: Operation not permitted anon fatal[main:pptp.c:275]: Cannot bind GRE socket, aborting. * если не прописать полный путь к pptp, то при запуске из-под обычного пользователя он не будет найден: возникнет ошибка вида ![]() ![]() sh: pptp: command not found Для отладочного вывода при запуске pon используйте дополнительные опции debug dump logfd 2 nodetach. Например: ![]() ![]() pon server debug dump logfd 2 nodetach |
Сообщ.
#2
,
|
|
|
gonsaless смотри какие группы уже существуют. Включи своего пользователя в нужную группу и все будет Ок. Точнее сказать не могу поскольку названия групп дистрозависимое явление.
|