Q: Привык, что в линуксе с помощью команды find можно легко фильтровать файлы по дате модификации. А как в Windows можно сделать выборку всех файлов, созданных или измененных за последние три дня?
A: Хочу тебя обрадовать, на винде тоже можно пользоваться линуксовыми утилитами, что я, кстати, и делаю. Удобно, и большой, а главное привычный функционал. Не забывай только в папку со скриптами кидать экзешники с утилитами. Взять архив с аж 34 различными утилитами можно отсюда. В состав входят особо интересные и наиболее распространенные юниксовые тулзы: cat, find, grep, nl, sed, sort, tail и куча других. В особо крайнем случае можно воспользоваться Cygwin, о котором писали уже не раз.
Q: Решил использовать Kali как основную ось. Но вот незадача, захотел посмотреть видео, а у меня, оказывается, флеш не установлен. Как это сделать?
A: Для этого нужно скачать тарбол по данной ссылке. Сервис предложит последнюю версию под твою платформу. Дальше нужно распаковать архив стандартной командой:
tar –xf install_flash_player
Предполагаю, что ты пользуешься Iceweasel. Поэтому вбивай следующую команду:
mv libflashplayer.so /usr/lib/mozilla/plugins/
Ее мы переносим в наш распакованный файл, в директорию плагинов браузера, после перезапуска последнего флеш‑плеер должен работать.
Q: На работе всем ставили Windows 7 Professional. Естественно, английскую, никаких проблем или вопросов никогда не возникало. Но как известно, хорошее быстро заканчивается, и вот встал вопрос русификации этих систем. К моему огромному удивлению, пройдя по пути Start Menu → Control Panel → Clock → Language and Region → Change display language и перейдя на вкладку Keyboards and Languages, не нашел кнопку Install/Uninstall Languages, которая должна здесь быть... Оказалось, что данный финт возможен только на Ultimate и Enterprise. Как же теперь быть?
A: Да, увы, в данной версии язык в пару кликов сменить нельзя. Поэтому воспользуемся системой DISM. Если обратиться к справке MS, то, вкратце, это система обслуживания образов развертывания и управления ими, средство командной строки, которое может использоваться для обслуживания образа Windows или для подготовки образа среды предустановки Windows (Windows PE). Оно заменяет диспетчер пакетов (Pkgmgr.exe), PEimg и Intlcfg, которые включались в Windows Vista. Из того, что эта штука умеет в данный момент, нас интересует только настройка региональных параметров. Чем мы сейчас и займемся.
Первоначально открываем консоль под администратором, где пишем:
DISM /Online /Add-Package /PackagePath:<dir_lp.cab>
bcdedit /set {current} locale ru-RU
bcdboot %WinDir% /l ru-RU
dir_lp.cab — это путь до языковых файлов в формате lp.cab. Теперь нужно запустить regedit и найти там ветку:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/MUI/UILanguages
где удалить en-US и перезагрузить машину. Если прошло корректно, то после перезапуска винда будет русифицирована. Главное, файл русификации бери с офсайта MS, иначе можно лицезреть синий экран.
Q: Начал писать скрипт для перезапуска служб, если они начали вести себя некорректно. Практически сразу уперся в вопрос: есть ли на винде аналог никсовой связки команд ps aux | grep
A: Да, есть такое! Для этого можно воспользоваться следующим синтаксисом:
tasklist | find "nameProg"
Также эти две команды способны показывать и более интересные результаты, к примеру, tasklist может отобразить список процессов, использующих более 10 000 Кб (10 Мб) памяти на компьютере с IP-адресом 192.168.0.1. При подключении к удаленному компьютеру используется имя пользователя admin в домене mydomain и пароль mypass
tasklist -s 192.168.0.1 -U mydomain\admin -P mypass /FI "memusage gt 10000"
У команды find есть тоже несколько полезных ключей:
/V — вывести в качестве результата поиска все строки, не содержащие заданный образец;/C — отобразить только общее количество строк, содержащих заданный образец;/N — отобразить только номера строк, содержащих заданный образец.
Конечно, не так, как на любом UNIX, но тоже весьма неплохо. А если использовать PowerShell, то можно добиться еще более крутых результатов.
Q: После того как в серверной на больших выходных неожиданно сдох кондей и повырубались практически все сервера, появилась необходимость мониторить температуру в серверной. Что можешь посоветовать?
A: На самом деле, здесь два варианта. Первый — это воспользоваться уже готовыми решениями. Скажем, покупкой USB-метеостанции, которая способна передавать значения температуры за бортом, то есть в серверной, на компьютер. На нем уже полученное значение сравнивается с эталонным, и, скажем, если они выше нормы, админу отсылается эсэмэска. Также можно посмотреть в сторону решения под названием TEMPer, для бюджетного мониторинга температуры в серверной лучше и не придумать. Но есть и другой вариант, более крутой. Это собрать девайс самостоятельно. Здесь уже количество функций, датчиков и возможностей ограничено лишь твоим кошельком, знаниями и свободным временем. Что однозначно будет плюсом. И навыки подтянешь, и получишь именно то, что нужно. Здесь уже можно использовать не один датчик, а три и более, для измерения температуры на разных высотах, после чего высчитывать среднее значение, которое уже сравнивать с эталоном. Но для начала и более спокойного сна можно воспользоваться и этой схемой. Что тоже весьма неплохо.
![TEMPer TEMPer](https://static.xakep.ru/images/49a5d4f88458d5b6c46b22e2230127e6/17929/temper.jpg)
Q: Частенько нужно делать однотипные операции на разных серверах. Заскриптовать данные процессы никак не могу, так как действия от раза к разу отличаются. Нужно средство для управления десятком юникс‑серверов. Системы по типу chef не предлагать, слишком громоздко.
A: Тогда предлагаю тебе ClusterSSH, ставится привычной командой:
sudo apt-get install clusterssh
ClusterSSH — это утилита для одновременного выполнения команд и внесения изменений в файлы конфигурации на нескольких хостах (серверах) сети. Тулза представляет собой Tk/Perl-«обертку», построенную на основе таких стандартных инструментов Linux, как xterm и ssh (OpenSSH). Для ее работы требуются всего лишь две библиотеки языка Perl: perl-tk и X11::Protocol. Для первоначальной настройки создадим файл clusters в /etc, укажем в нем что‑то подобное:
host1 = user@192.168.0.1
host2 = user1@192.168.0.2
host3 = user2@192.168.0.3
web = host1 host2
где host1 = user@192.168.0.1 — это наши хосты, с пользователем и адресом удаленного сервера. Строка ниже, web, позволяет сортировать машины по определенным признакам и упрощает подключение к ним. Сейчас, чтобы подключиться к машинам 1 и 2, нужно ввести команду
sudo cssh web
Количество подключений ограничено лишь твоим железом и диагональю монитора. Так что отличный вариант, особенно если машин не так много.
![ClusterSSH ClusterSSH](https://static.xakep.ru/images/49a5d4f88458d5b6c46b22e2230127e6/17927/cssh.jpg)
Q: На работе идет миграция лицензии по отделам. Понадобилось удалить активацию Win XP, чтобы изменить лицензию. Как это можно сделать?
A: В данном случае можно воспользоваться какой‑нибудь тулзой, коих сейчас пруд пруди. Но вот не подарят ли они еще до кучи пару‑тройку троянов, это вопрос. Да и не трушно такие вещи через сторонние программы делать. Так что предлагаю, вооружившись regedit’ом, найти следующую ветку:
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\Current Version\WPAEvents
А там в параметре OOBETimer нужно изменить по крайней мере один разряд этого параметра. После перезагрузки активация слетит.
Q: Хочу следить за состоянием жестких дисков, желательно для этого использовать Zabbix. Что посоветуешь?
A: Для этих целей отлично подойдет утилита smartctl из пакета smartmontools. Ставится из репозитория:
sudo apt-get install smartmontools
Для теста жесткого диска можно воспользоваться следующей командой:
sudo smartctl -H /dev/sda |grep "test"| cut -f2 -d: |tr -d " "
Остается только заставить заббикс ее выполнять. Начнем. Во‑первых, в Zabbix-агенте включим выполнение удаленных команд. Для этого в параметре EnableRemoteCommands установим значение в 1 и раскомментируем его, он находится в zabbix_agentd.conf. Не забываем перезапустить демон агента. Теперь нужно в самом конце конфига добавить UserParameter вида
UserParameter=<ключ>,<команда>
где ключ может быть любое значение, которое потом будем использовать в элементах данных самого заббикса, и команда, куда мы и подставляем наше строку, что была выше.
UserParameter=HDD.smart.[*],sudo smartctl -H /dev/$1 |grep "test"| cut -f2 -d: |tr -d " "
Также, чтобы у заббикса хватило прав на выполнение данной команды, нужно добавить строку в файл /etc/sudoers
zabbix ALL=NOPASSWD: ALL
Это разрешит выполнять пользователю Zabbix все команды без ввода пароля. Для большей секьюрности можно указать лишь определенные скрипты. Останется только настроить наши элементы данных, чтобы отображать состояние жесткого диска. Данная тулза, кстати, есть не только под линукс, но и под винду. Так что организовать подобную проверку и под Win-платформу не составит большого труда.
Сокращаем время развертывания Win-машин
Q: Нужно поставить винду с абсолютно идентичными настройками на 20+ машин. Как бы это сделать более быстро и менее ресурсозатратно?
A: Предлагаю использовать роль сервера «Службы развертывания Windows» (Windows Deployment Services или WDS), как раз предназначенную для установки операционной системы по сети. В установке новой роли на сервер нет ничего нового или сложного, так что этот момент, думаю, можно опустить. Переходим сразу к первоначальной настройке сервера. Сперва нужно определиться с местом хранения образов, особенно если их будет много, для этого лучше использовать несистемный диск. Двигаясь дальше, переходим к настройке DHCP. В случае если служба установлена на другом сервере, потребуется дополнительно сконфигурировать службу DHCP. По этому вопросу можно обратиться к офсправке. На этапе исходных параметров PXE-сервера установить галку на пункт «Отвечать всем клиентским компьютерам» и поставить галку на требование подтверждения со стороны админа. Тем самым сервер будет отвечать на все запросы удаленной установки, но сама установка не начнется до тех пор, пока админ ее не разрешит. Это обезопасит от левых установок по сети. Как видишь, вся установка и настройка новой роли не составляет ничего сложного, но на порядок упрощает установку систем. Так же, принимая во внимание тот факт, что настройки и софт, скорее всего, будет идентичны, можно настроить одну систему, снять с нее образ и расклонировать через WDS по сети, что еще больше упростит развертывание операционных систем.
![WDS WDS](https://static.xakep.ru/images/49a5d4f88458d5b6c46b22e2230127e6/17928/wds.png)
![](https://xakep.ru/wp-content/uploads/2014/08/1871-215x280.png)
Хакер #187. Обходим Blizzard Warden
Q: Стоял у меня Hyper-V, а, как известно, на нем можно бесплатно поднять только четыре системы. Захотелось поднять еще, для этого решил воспользоваться виртуал‑боксом... И началось такое... Как теперь исправить этот беспредел?
A: Увы, VirtualBox и Hyper-V не могут сосуществовать на одном компьютере. Гипервизор может быть запущен только один. Есть здесь, правда, один обходной путь. Для этого нужно воспользоваться консольной утилитой BCDEdit. Как говорит справка от MS, это средство командной строки, предназначенное для управления данными конфигурации загрузки. Оно может использоваться для различных задач: создания новых хранилищ, изменения существующих хранилищ, добавления параметров меню загрузки и многого другого. Программа BCDEdit выполняет те же функции, что и Bootcfg.exe в более ранних версиях Windows, но имеет два существенных преимущества:
- в отличие от Bootcfg.exe, BCDEdit предоставляет расширенные параметры;
- в BCDEdit улучшена поддержка сценариев.
Что ж, попробуем ее использовать. Для того чтобы отключить Hyper-V и использовать VirtualBox, нужно открыть командную строку от имени администратора и выполнить команду:
bcdedit /set hypervisorlaunchtype off
Ключ /set устанавливает значение параметра записи, в нашем случае в офф. После этого нужно перезагрузить машину. И наш VirtualBox запустится. Для того чтобы запустить вновь Hyper-V, введем другую команду:
bcdedit /set hypervisorlaunchtype auto
Посмотреть, какой режим используется в данный момент, можно, выполнив команду
bcdedit
без ключей, ее значение находится в самом низу. Таким нехитрым способом можно переключаться между этими двумя гипервизорами.
![bcdedit bcdedit](https://static.xakep.ru/images/49a5d4f88458d5b6c46b22e2230127e6/17930/bcdedit.jpg)
Q: Знаю, что по Cisco есть различные виртуальные стенды, где можно настраивать и тестировать разные сетевые железки. А есть ли подобное для D-Link, где можно посмотреть различные параметры и полазать по менюшкам?
A: Да, есть! И совершенно бесплатно. Вот здесь собраны в кучу эмуляторы различных устройств. Можно покопаться, посмотреть настройки и поизучать различное сетевое оборудование. Вкупе с документацией к этим железкам и толковой книжкой по сетям можно неплохо прокачаться в плане теории. Главное, не забывать, что теория без практики — это время на ветер.
Q: На дебиан при компилировании exim’a появилось вот такое сообщение: «Please install ExtUtils::Embed for /usr/bin/perl». Как с ним бороться?
A: Нужно поставить модуль перла ExtUtils-Embed. Для этого выполним в консоли:
wget http://files1.directadmin.com/services/all/perl_modules/ExtUtils-Embed-1.14.tar.gz
tar xvzf ExtUtils-Embed-1.14.tar.gz
cd ExtUtils-Embed-1.14
perl Makefile.PL
make
make install
Здесь, как видишь, все просто, скачиваем нужный нам модуль. Распаковываем его и собираем. После этого можно компилировать exim. Проблем возникнуть не должно.
Настройка Fn-клавиш под себя
Захотелось поставить себе Ubuntu на ноутбук. Все бы ничего, но вот работа функциональных клавиш удручает. Или не работает, или работает так, что совершенно неудобно. Самое обидное, что на винде все кнопки работали как положено. Что можно придумать в данной ситуации, возможно ли переназначить значения клавиш?
Начнем с небольшого экскурса в теорию. Для наглядности эксперимента можно загрузить ноут и на этапе загрузки BIOS понажимать комбинации Fn-клавиш. К примеру, яркости. Даже если зайти в настройки самого биоса, яркость будет работать. Это нам докажет, что они, в своем роде, привязаны к BIOS, а значит, должны обрабатываться через ACPI. А это то, что нам и надо в данном случае.
-
Теперь нам нужно доставить необходимые пакеты для обработки ACPI-событий. Выполняем в терминале:
sudo aptitude install acpid acpi-support acpi acpitoolТем самым мы ставим сам ACPI-демон, который обрабатывает ACPI-события.
acpi-support
— пакет, который ставит в систему файлы — обработчики событий, или, по‑другому — правила реагирования на ACPI-события, и скрипты, которые вызываются файлами‑обработчиками при наступлении какого‑либо события. acpi и acpitool — это дополнительные утилиты, показывающие различную инфу, полученную через acpi. -
Теперь нам нужно получить коды клавиш. Сделать это можно следующей командой:
acpi_listenПосле ее выполнения нужно нажать нужную комбинацию Fn-клавиш. Для примера возьмем
. Получим примерно подобную картину: hotkey ATKD 00000051 00000000hotkey ATKD 00000051 00000001Не пугайся, все довольно просто. В данном случае первые два слова — это тип события. За ними идет номер события. И последнее — это порядковый номер нажатия на нашу клавишу.
-
Остается дело за малым. Нужно найти файл — обработчик нашего события. Для этого шагаем по пути /etc/acpi/events/ и, вооружившись командой grep, выполняем поиск:
grep 00000051 /etc/acpi/events/*Так мы найдем наше событие и, самое главное, action, который как раз и говорит демону acpid, что нужно делать после нажатия на клавиши. Выглядит примерно так:
action=/etc/acpi/webbtn.shВ этом скрипте webbtn.sh и есть самое интересное.
-
Открыв его, получаем следующую картину:
#!/bin/shtest -f /usr/share/acpi-support/key-constants || exit 0. /usr/share/acpi-support/key-constantsacpi_fakekey $KEY_WWWСмотрим сразу на последнюю строку. В ней идет вызов утилиты acpi_fakekey и передача ей в качестве параметра кода клавиши $KEY_WWW. Она эмулирует нажатие клавиши на клавиатуре, код которой ей передали. Остается только изменить нужные кнопки на определенные действия и пользоваться в свое удовольствие.
Q: Приходится работать с различными англоязычными доками в бумажном виде, порой хочется что‑то отсканировать. Но бегать с листами к сканеру не с руки. Может, посоветуешь какое‑то приложение на андроид для этого?
A: Конечно! Из всего разнообразия подобных программ я предлагаю CamScanner. Ее возможности весьма богаты. Умеет быстро сканировать документы, а также различные чеки, записки, счета, доски обсуждений, визитки, сертификаты и другие бумажные носители. Оптимизирует качество сканирования, умеет обрезать и автоматически улучшать изображение, обеспечивая чистоту и резкость текстов и изображений. Позволяет распознавать текст в PDF-документах. Существует управление отсканированными документами: можно распределять их по группам, сортировать по дате, тегам, просматривать в виде листа/плитки. Есть возможность устанавливать пароли для секретных документов. И самое крутое — есть возможность синхронизации на смартфонах, планшетах и ПК. Плюс можно выгружать в облако, есть поддержка облачных сервисов хранения: Google Drive, Dropbox, Box.com. Из минусов — некорректная работа с русскими текстами, но думаю, что разработчики это поправят. Программа стоит того, чтобы быть у тебя под рукой.
Q: Замена ли ноутбуку планшет?
A. С одной стороны — да. На 10-дюймовом планшете можно легко выполнять большую часть основной офисной деятельности по работе с документами и распечаткой последних. С учетом того, что есть возможность подключения полноценной клавиатуры и даже мыши с флешкой, планшет может превратиться в весьма мобильное рабочее место.
B. С другой стороны, попробуй открыть на планшете с десяток PDF-файлов или текстовых отчетов с графиками. И попробуй между ними попереключаться, создавая новый документ. Силенок, да и возможностей железа не хватит. Да и вообще, по железу планшет пока сильно отстает от тех же ультрабуков. Плюс для работы в нормальном окружении, скорее всего, будет нужен рут и соответствующие костыли.