desтруктивный журнал - Доступ к консоли Windows из Linux
October 24th, 2011
11:31 am

[Link]

Previous Entry Add to Memories Tell A Friend Next Entry
Доступ к консоли Windows из Linux

Давненько я не писал ничего о работе, вот сегодня с утра разобрался с одной хреновиной для стимулирования лени =)

Очень удобно для работы с консольными утилитами, коих конечно много меньше, но все же они есть. Или просто для запуска отдельных программ или команд. Теперь для того, чтобы выставить время на удаленном компе, или еще что-то нет смысла отрывать себя от стула и работающего человека от его работы.

  1. Есть проект winexe. Один бинарник, который реализует механизм RCP. Т.е. можно удаленно запускать все что угодно, при этом ничего не windows предварительно устанавливать не надо. Нам необходимо установить этот пакет, взять его можно в виде исходников, или в репозитарии
  2. в общем, теперь почти все уже готово, проверить можно вот так winexe -W GEO //termserv cmd, т.е. мы коннектимся текущим пользователем к машине termserv и запускаем cmd т.е. получается такой шелл.

Минусы этого решения видны сразу. Первое - это кодировка, cp866 в нашем линуксе в качестве локали почти не поддерживается (что нам и говорит locale -a | grep 866), второе это невозможности передавать управляющие последовательности с клавиатуры т.е. всяческие Ctrl+C, F1..10 и пр.. И если второе не лечиться в принципе (по заверению авторов, на данный момент они не видят никакого решения этой проблемы), то второе удачно лечиться с помощью рашпиля\напильника\надфиля\шкурки..

Что нам для этого понадобиться. Первое и единственное средство это luit, программа входящая в пакет xorg-x11-apps и осуществляющая потоковую конвертацию из одной кодировки в другую принцип просто luit -encoding cp1251 winexe //termserv cmd, т.е. мы запускаем luit в качестве фильтра из кодировки cp1251 в текущую, для команды winexe и пр. Все удачно работает, но luit -list, говорит нам о том, что он знает множество кодировок, кроме CP866. Печально. Будем лечить.

Что нам для этого надо :)

  1. скачиваем исходники xorg-X11-apps.src.rpm
  2. устанавливаем его в систему rpm -i xorg-X11-apps.src.rpm, согласно идеологии redhat, все src пакеты при установке будут разделены на исходники (в папке /usr/src/redhat/SOURCES) и spec файл(ы) необходимые для последующей сборки (в /usr/src/redhat/SPECS).
  3. идем в /usr/src/redhat/SOURCES видим там, кроме всех прочих утилит, исходники luit-1.xxx.bz2. Перетаскиваем в укромное местечко, распаковываем и начинаем изучать.
  4. видим файл charmap.c, открываем и начинаем фиксить
    1. В описании массива FontencCharsetRec fontencCharsets[] = { добавляем строку строку {"IBM866", T_128, 0, "ibm-cp866", 0x80, 0, 0}, (никакой импровизации! все имена сверены с RFC и именно так и должны называться)
    2. затем в описании LocaleCharsetRec localeCharsets[] = { добавим { "ibm866", 0, 2, "ASCII", NULL, "IBM866", NULL, NULL},
  5. теперь собираем дерево исходников luit, в такой же архив как и был и копируем обратно в /usr/src/redhat/SOURCES
  6. теперь надо создать саму локаль cp866. Проверяем все что нам для этого необходимо, а это - наличие файла /usr/share/i18n/charmaps/IBM866.gz, если файл есть можно создавать локаль localedef -i ru_RU -f IBM866 ru_RU.IBM866
  7. локаль есть, фиксы готовы. Собираем rpm - rpmbuild -ba /usr/src/redhat/SPECS/xorg-x11-apps.spec
  8. в зависимости от платформы берем готовые rpm в /usr/src/redhat/RPMS/платформа/xorg-x11-apps-x.y.z.abc.rpm
  9. обновляем текущую версию rpm -U /usr/src/redhat/RPMS/платформа/xorg-x11-apps-x.y.z.abc.rpm
  10. проверяем.. вуаля!

(4 comments | Leave a comment)

Comments
 
[User Picture]
From:[info]steinkrauz
Date:October 24th, 2011 - 10:29 am
(Link)
А не проще воткнуть на Винду OpenSSH?
[User Picture]
From:[info]d_e_s_
Date:October 24th, 2011 - 10:57 am
(Link)
не проще.. когда компов две сотни, смысла в этом нет.. лучше один раз собрать у себя и пользоваться чем городить что-то что будет светить открытым портом в сеть.
[User Picture]
From:[info]steinkrauz
Date:October 24th, 2011 - 11:44 am
(Link)
А причём здесь количество компов? Скрипту всё равно, сколько строк обработать -- 10 или 210. (Не говоря уж о том, что ssh можно в образ системы включить)
Ну и машины и без того светят в сеть сервис RPC, для которого эксплойтов вагон и маленькая тележка.
[User Picture]
From:[info]mindflower
Date:October 24th, 2011 - 05:53 pm
(Link)
Я помнится когда админил, запускал на винде штатный телнет.
Powered by LJ.Rossia.org