Вообще-то я понял, что на MikroTik v6.25 отключен PPTP, т.е. IP-адрес 172.16.100.2, поэтому я не мог подключиться к VPN-серверу.
После включения PPTP на MikroTik я могу подключиться к серверу следующим образом:
me@linux-box:~> sudo pppd call TUNNEL debug nodetach
using channel 15
Using interface ppp0
Connect: ppp0 <--> /dev/pts/5
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xa905bd9b> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xa905bd9b> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xa905bd9b> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xa905bd9b> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xa905bd9b> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xa905bd9b> <pcomp> <accomp>]
Проблема, вероятно, заключается в специфическом форматировании вывода lsusb
:
% usbid=1d6b:0001
% lsusb -d $usbid | awk '{ print "/dev/bus/usb/" $2 "/" $4 }'
/dev/bus/usb/001/001:
Обратите внимание на дополнительное двоеточие в конце. К счастью, вы можете легко удалить его как в awk, так и в оболочке, вот пример awk:
% usbid=1d6b:0001
% lsusb -d $usbid | awk '{ a = $4; sub(/:$/, "", a); print "/dev/bus/usb/" $2 "/" a }'
/dev/bus/usb/001/001
Похоже, это должно работать, за исключением того, что вывод lsusb
содержит двоеточие после номера устройства:
$ lsusb -d 1d6b:0002
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Таким образом, переменная devis
будет содержать это, и в конечном результате вы попытаетесь получить доступ к /dev/bus/usb/001/001:
с двоеточием.
Вы можете избавиться от завершающего двоеточия с суффиксом -, удалив расширение, например:
devis=${devis%:}
Другой способ сделать это только в оболочке (безawk
)— просто read
вывести lsusb
. Это берет только первую строку выходов lsusb
, их может быть больше, если есть более одного совпадающего устройства.
В оболочках с заменой процесса:
read x buss x devis x < <(lsusb -d 04f9:0272)
devis=${devis%:}
chmod +w "/dev/bus/usb/$buss/$devis"
Или с трубой:
lsusb -d 04f9:0272 | {
read x buss x devis x
devis=${devis%:}
chmod +w "/dev/bus/usb/$buss/$devis"
}
В комментариях вы предоставляете вывод ls -l
для вашего устройства:
crw-rw-r-- 1 root lp 189, 1 Jul 24 18:48 /dev/bus/usb/001/002
Вы видите, что у пользователя и группы уже есть права на чтение/запись. Поэтому, если вы добавите своих пользователей в группу lp
, ни один из этих скриптов не понадобится.