Ru-Board.club
← Вернуться в раздел «UNIX»

» управление Linux через telnet

Автор: DzOOMer
Дата сообщения: 06.08.2009 23:06
есть ADSL модем D-Link DSL 2520 U/BRU/C на котором прошита ОС Linux
модем поддреживает управление по протоколу telnet

так вот, когда я пользуюсь утилитой DSL-Modem Tool использующий telnet для связи с модемом то при ее помощи успешно выполняются команды
sysinfo
date

но когда я захожу на модем через Windows XP из cmd командой >telnet 192.168.1.1
то команда date не отрабатывается (пишет date: not found) хотя команда sysinfo работает нормально.

вопрос - почему по управлением виндовс одна команда работает а другая нет?
Автор: cr
Дата сообщения: 07.08.2009 06:37
А если воспользоваться не стандартным телнетом а putty или teraterm или еще чем-нить, работает ?
Автор: DzOOMer
Дата сообщения: 07.08.2009 13:30
cr
да, в putty тожесамое...

вот я сделал скрины работы обеих программ:

DSL-Modem Tool: http://img248.imageshack.us/img248/3121/dtm.jpg

PuTTY: http://img15.imageshack.us/img15/2557/puttyj.jpg
Автор: flayx
Дата сообщения: 07.08.2009 13:49
DzOOMer
Думается дело в путях.
Попробуй набрать which date, он тебе должен будет сказать где лежит команда date.
Скорее всего это будет /bin/date.
Укажи путь целиком.
После попробуй в модемном туле набрать env или set и сравнить переменные (тот же path)

Происходит это скорее всего из-за того, что после авторизации этот тул запускает свой скрипт.
Его, или переменную с путями, можно указать в .login файле (скрытый в домашнем каталоге)

Автор: DzOOMer
Дата сообщения: 07.08.2009 14:10

Цитата:
Попробуй набрать which date, он тебе должен будет сказать где лежит команда date.

PuTTY
> which date
which date: not found
> echo *
bin dev etc lib linuxrc mnt proc sbin usr var webs
> echo /bin *
/bin bin dev etc lib linuxrc mnt proc sbin usr var webs


Цитата:
После попробуй в модемном туле набрать env или set и сравнить переменные (тот же path)

DMT:
env: not found

>set
PS2=>
PS1=#
IFS=

USER=root
SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin
TERM=vt102
HOME=/
Автор: flayx
Дата сообщения: 07.08.2009 15:50
DzOOMer
А теперь то же самое с модемного тула. Будем сравнивать.
Автор: DzOOMer
Дата сообщения: 07.08.2009 16:30
DMT
which: not found

а env и set я с него и запускал
Автор: flayx
Дата сообщения: 08.08.2009 08:48
DzOOMer

Цитата:
PATH=/bin:/sbin:/usr/bin

в каком либо из этих путей под putty есть date?
есть ли возможность отобразить переменные там же?
есть ли там find?
Автор: DzOOMer
Дата сообщения: 08.08.2009 21:24
=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2009.08.08 22:22:41 =~=~=~=~=~=~=~=~=~=~=~=
BCM96338 ADSL Router
Login: admin
Password:
> echo /bin/*
/bin/UrlFilter /bin/adsl /bin/adslctl /bin/atm /bin/atmctl /bin/brctl /bin/busybox /bin/cat /bin/cfm /bin/chmod /bin/cp /bin/date /bin/ddnsd /bin/df /bin/dhcpc /bin/dhcpd /bin/dhcpr /bin/dmesg /bin/dnsprobe /bin/dumpmem /bin/ebtables /bin/echo /bin/ethctl /bin/false /bin/igmp /bin/iptables /bin/kill /bin/ln /bin/mkdir /bin/mount /bin/msh /bin/netctl /bin/ping /bin/ping6 /bin/pppd /bin/pptp /bin/ps /bin/pvc2684ctl /bin/pvc2684d /bin/pwd /bin/rm /bin/sendarp /bin/setmem /bin/sh /bin/sleep /bin/sntp /bin/sysinfo /bin/tftpd /bin/true /bin/udhcpd /bin/umount /bin/xtmctl
> /bin/date
/bin/date: not found
> logout

Bye bye. Have a nice day!!!
Автор: flayx
Дата сообщения: 08.08.2009 22:54
DzOOMer
помимо /bin есть еще /sbin, /usr/bin и пр. каталоги"!". По этому я и попросил find.
Я понимаю, что /bin/date не найден, листинг find, по возможностсти, был бы не лишним.
А если поискать find для от корня, что рутер выдаст???
Автор: DzOOMer
Дата сообщения: 09.08.2009 01:54
на find не реагируют обе программы...

> echo /sbin/*
/sbin/ethctl /sbin/ifconfig /sbin/init /sbin/insmod /sbin/klogd /sbin/logread /sbin/reboot /sbin/rmmod /sbin/route /sbin/syslogd /sbin/vconfig
> echo /usr/bin/*
/usr/bin/[ /usr/bin/expr /usr/bin/ftpget /usr/bin/killall /usr/bin/logger /usr/bin/test /usr/bin/tftp /usr/bin/top /usr/bin/tty

и еще вот этот вылазит тока в DTM:


Код: busybox
BusyBox v1.00 (2009.07.29-06:43+0000) multi-call binary

Usage: busybox [function] [arguments]...
or: [function] [arguments]...

BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use, and BusyBox
will act like whatever it was invoked as.

Currently defined functions:
[, busybox, cat, chmod, cp, date, df, dmesg, echo, expr, false,
ftpget, ifconfig, init, insmod, kill, killall, klogd, linuxrc,
ln, logger, logread, mkdir, mount, msh, ping, ping6, ps, pwd,
reboot, rm, rmmod, route, sendarp, sh, sleep, sysinfo, syslogd,
test, tftp, tftpd, top, true, tty, umount, vconfig
Автор: flayx
Дата сообщения: 09.08.2009 11:19
DzOOMer
Вот теперь ситуация проясняется.
В твоем модеме стоит не совсем полноценный Linux. Называется BusyBox (кратенько здесь), а на офф.сайте есть полный перечень команд.
Его синтаксис немного отличается. И очень часто полноценный список команд еще и намеренно урезается, как в случае с этим dlink
Судя по всему, DMT при запуске использует алиасы на тот же date, как именно, можно посмотреть по аналогии (глянь первые две страницы, как народ юзает)
Автор: DzOOMer
Дата сообщения: 09.08.2009 12:35
это все понятно, вот только не понятно как запустить команды с телнета?
приведеные примеры не работают...

> /bin/busybox
/bin/busybox: not found

> ./bin/busybox
./bin/busybox: not found

> ./busybox
./busybox: not found

> busybox
busybox: not found
Автор: flayx
Дата сообщения: 10.08.2009 10:24
На твоем скрине, что выше, ты запускал sysinfo
если попробовать /bin/sysinfo, оно его видит?
еще можно попробовать зайти внутрь
cd /
cd bin
./busybox
да, и еще , покажи какие права стоят на файлы, может они просто не помечены как запускаемые?
посмотреть можно командой ls -l
З.Ы

Цитата:

и еще вот этот вылазит тока в DTM:
busybox
BusyBox v1.00 (2009.07.29-06:43+0000) multi-call binary


а в какой момент на DMT появляется сообщение о запуске busybox, сразу после запуска, или каждый раз после набора команд? cкриншотик бы поподробней.
Автор: DzOOMer
Дата сообщения: 10.08.2009 15:27
putty:

Код: > sysinfo
Number of processes: 22
12:02am up 2 min,
load average: 1 min:0.15, 5 min:0.17, 15 min:0.07
total used free shared buffers
Mem: 5872 5336 536 0 160
Swap: 0 0 0
Total: 5872 5336 536
> /bin/sysinfo
/bin/sysinfo: not found
> cd /
cd /: not found
> cd bin
cd bin: not found
> ./busybox
./busybox: not found
> ls -l
ls -l: not found
> ls
ls: not found
Автор: flayx
Дата сообщения: 11.08.2009 21:18
Почитал немного форум на сайте Dlink, нашел две интересные ветки.
В этой ветке в одной при листинге каталогов корнем является www/bin (листай вниз)
А после прочтения этой ветки складывается мнение, получается что доступ ко многим устройствам у Dlink, конечно есть, но он скорее фиктивный, чем реальный.
У некоторых telnet лечился перепрошивкой.
вот здесь лежит прошивка 1.21 от 31 мая.
Может ее попробовать? Вот инструкция.
Автор: DzOOMer
Дата сообщения: 11.08.2009 22:59
flayx

почитал те ветки... всетаки странно что через DMT команды проходят...

а вообще DMT вполне бы хватило для моих целей но к сожалению на этой модели модема эта программа работает только с пустым значением пароля, что снижает безопасность и позволяет кому угодна ходить по настройкам модема (логин/пароль на telnet и web один).
поэтому я и решил перейти на telnet да видать не выйдет...

а прошивку эту я установил на следующий день после ее выхода и все манипуляции в этой теме делал именно на ней...
Автор: cr
Дата сообщения: 12.08.2009 08:52
Возможно если корень находится не в корне( вот так ) то попробовать выполнить не /bin/date а что нибудь в виде ../bin/date или ../../bin/date
Автор: DzOOMer
Дата сообщения: 12.08.2009 12:52
непрокатило...

../bin/date: not found
../../bin/date: not found
../../../bin/date: not found
Автор: flayx
Дата сообщения: 12.08.2009 13:27
DzOOMer

Цитата:
но к сожалению на этой модели модема эта программа работает только с пустым значением пароля, что снижает безопасность

Гм... Dlink жгет.
Обычно на таких девайсах штатно идет файрвол. М.б. ограничить достут только с одного мака? Если не умеет, то хотя бы с IP на нестандартном порту?
А по поводу прошивки, есть вариант попробовать более старые (можно допустить,например, что это глюк новой)
Тем более прошивается он без танцев с бубном.

Цитата:
непрокатило..
.
В прошлом посте с сайта Dlink человече пробовал отобразить список корня командой ln *
а какие каталоги отобразит у тебя эта команда?

Кстати, а chroot там тоже отсутствует ?
Автор: DzOOMer
Дата сообщения: 12.08.2009 15:40
DMT:
ln: webs/bin: Invalid cross-device link
ln: webs/dev: Invalid cross-device link
ln: webs/etc: Invalid cross-device link
ln: webs/lib: Invalid cross-device link
ln: webs/linuxrc: Invalid cross-device link
ln: webs/mnt: Invalid cross-device link
ln: webs/proc: Invalid cross-device link
ln: webs/sbin: Invalid cross-device link
ln: webs/usr: Invalid cross-device link
ln: webs/var: Operation not permitted

Putty:
> /webs/bin/date
/webs/bin/date: not found
Автор: legko_kiev
Дата сообщения: 13.08.2009 13:03
Думаю ответ где-то здесь
Посмотри переменные окружения, если есть такая возможнось
echo $PATH
Причем посмотри сначала утилитой DSL-Modem Tool, а потом из cmd и PuTTY
Сравни ответы.
если пути отличаются, придется работу в cmd или PuTTY начинать с команды export
Автор: DzOOMer
Дата сообщения: 13.08.2009 14:00
DMT:
/bin:/sbin:/usr/bin

cmd:
/bin:/sbin:/usr/bin

PuTTY:
/bin:/sbin:/usr/bin
Автор: legko_kiev
Дата сообщения: 13.08.2009 17:57
... м-дя, сложно что-то сказать
тогда сначала - юзера одинаковые при входе DMT, cmd и PuTTY?
предлагаю, что да... по скринам видно.
попробуй-ка зайти DMT, выполнить pwd
Потом зайди к примеру PuTTY и посмотри тоже pwd
... может DMT ты попадаешь в какую-то особую директорию, где есть date

почему же ls не работает из DMT?? и grep'а нет?
было бы красиво, например так:
ls -lR / | grep date

логов тоже нет?


Автор: DzOOMer
Дата сообщения: 13.08.2009 19:30
в DMT есть чтото наподобие лога, только называется Debug

выполнение команды pwd
DMT(из debug окна):

DMT_TX> pwd
DMT_RX> pwd
/
#

PuTTY:
> pwd
/

для входа использую одни и теже реквизиты логин/пароль
Автор: legko_kiev
Дата сообщения: 13.08.2009 20:06

Цитата:
в DMT есть чтото наподобие лога, только называется Debug

просто я подумал, что DMT тебе возвращает локальную дату и сисинфу
был бы полноценный Линух я бы поступил так:
1) зашел бы DMT дал бы команду date
2) зашел бы PuTTY и посмотрел .bash_history (выполнялась ли команда date _ИМЕННО_НА МОДЕМЕ) ... ну или history | grep date
Помозгуй как такое можно посмотреть.
Автор: DzOOMer
Дата сообщения: 23.08.2009 16:58
сегодня читал длинковский форум и там обратили внимание на команду help запускаемую с телнета которая и выводит список доступных команд...

вот ее результат:


Код: BCM96338 ADSL Router
Login: admin
Password:
> help

?
help
logout
reboot
adsl
atm
brctl
cat
ddns
df
dumpcfg
echo
ifconfig
kill
arp
defaultgateway
dhcpserver
dns
lan
passwd
ppp
remoteaccess
restoredefault
route
save
swversion
wan
ping
ps
pwd
macaddr
dumpcfg2
clearpsi
sntp
sysinfo
tftp

> logout

Bye bye. Have a nice day!!!


Подключение к узлу утеряно.
Автор: qeqs
Дата сообщения: 10.08.2011 15:29
date нет, зато есть sh, а из неё и date и dmesg запускаются и не только, help уже другое рассказывает.
а в putty, кажись, можно указать запускаемую команду при входе.

Страницы: 1

Предыдущая тема: Выбор оси и дистрибутива для Шлюза


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.