-
Первая игра отборочного тура Yandex.Root 2015. Задачи и решения.
Для начала кто не знает что такое Яндекс.Root – олимпиада Яндекса для unix-инженеров, системных администраторов и всех любителей Open Source и Linux. Участники олимпиады соревнуются в умении быстро и правильно решать задачи, с которыми ежедневно сталкиваются системные администраторы. Игроки, наиболее быстро справившиеся со всеми заданиями, получают денежный приз.
Сайт олимпиады: root.yandex.com
Задания находятся по ссылке: http://paste.omsklug.com/2607
Как мы решил эти задачи (нумерация из задания)
1. SSL
Подпись:
#генерация ключа сервера:
openssl genrsa -out server.omsklug.com.key 2048
#генерация запроса для CA:
openssl req -new -key server.omsklug.com.key -out server.omsklug.com.csr
#подписание запроса у CA и получение сертификата:
openssl x509 -req -in server.omsklug.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.omsklug.com.crt -days 365
#готовый файлик для HTTPS сервера:
cat server.omsklug.com.key server.omsklug.com.crt > server.omsklug.com.pemконфиг:
$SERVER["socket"] == ”:443” {
ssl.engine = ”enable”
ssl.pemfile = ”/etc/lighttpd/certs/server.omsklug.com.pem”
ssl.ca-file = ”/etc/lighttpd/certs/ca.crt”
server.document-root = ”/home/lighttpd/certs/https”
server.errorlog = ”/var/log/lighttpd/certs/serror.log”
accesslog.filename = ”/var/log/lighttpd/certs/saccess.log”
ssl.cipher-list = ”aRSA+HIGH +kEDH -kRSA !kSRP !kPSK +3DES !MD5 !SSLv3”
}server.modules = (
mod_access,
”mod_accesslog”,
mod_alias,
mod_compress,
mod_redirect,
”mod_rewrite”,
”mod_fastcgi”,
)качаем сертификат в папку /etc/ssl/certs:
wget http://crt.usertrust.com/USERTrustLegacySecureServerCA.crt
update-ca-trust2. MariaDB repair
#сброс пароля:
systemctl stop mysqld.service
mysqld_safe –skip-grant-tables
mysql -u root
update user set password=PASSWORD(”mynewpassword”) where User=’root';
flush privileges;#права на базу:
chown -Rf mysql:mysql /var/lib/mysql#права:
GRANT ALL PRIVILEGES ON *.* TO ’checker’@’10.0.0.1’ IDENTIFIED BY ’masterkey’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
#маскировка в конфиге:
#разкомменченый не пускает в интернет:
#skip-networking
#для ipv4:
bind-address = 0.0.0.0
#Если не закомментирован, все таблицы будут read-only:
#innodb_force_recovery = 23. Binary
#поставил вайн, затем моно
#пытался пересобрать бинарник
#пытался запустить бинарник
#начал смотреть зависимости, не хватало либы
#нашел либу, скачал, залил через scp
#запустил 1.exe и выполнил gamepacman -S mono
#Cкачать себе https://dnanalytics.codeplex.com/releases/view/25456
scp /tmp/dnAnalytics_managed.zip root@ip:/root/dnAnalytics_managed.zip
unzip
mv bin/* ~/1
mono 1.exe &
game4. Mongo
#Три директории
/data/s1 сюда распаковываем нашу БД
/data/s2
/data/config#запускаем шарды, конфиг сервер и какую-то штуку:
mongod –dbpath /data/s1 –port 27010
mongod –dbpath /data/s2 –port 27020
mongod –configsvr –dbpath /data/config –port 27000mongos –configdb 127.0.0.1:27000 –port 27017
#коннектится к нашей БД
mongo –port 27017#там мышардим root.features
use admin
sh.enableSharding(”root”)
use root
db.features.ensureIndex({_id: 1})
use admin
db.runCommand({shardCollection: ”root.features”, key: {_id: 1}})5. Strange protocol
Не осилили
6. File (который /root/file)
в общем, сначала захотелось понять, что это за файл:
#file file
file: LVM2 PV (Linux Logical Volume Manager), UUID: XT6zLL-YAUv-nmA9-BSrw-2pBV-CTi2-vqKe35, size: 31457280
потом вспомнил, что есть такая приблуда, как kpartx, которая монтирует образы дисков.
#kpartx -a file
получилось loopback устройство /dev/loop0
просканировал физические тома:
# pvscan
PV /dev/loop0 VG VolGroup00 lvm2 [28,00 MiB / 0 free]
потом активировал группу томов:
#vgchange -a y VolGroup00
после этого появился логическй том lv0 в /dev/VolGroup00
и его теперь можно подмонтировать в предварительно созданный
каталог с названием yadisk:
# mount /dev/VolGroup00/lv0 yadisk
там в корне лежит файлик root.txt.gz, содержимое которого яндексу не понравилось.
после этого возникла мысль, что, возможно, на разделе есть затёртый файл,
который нужно восстановить. смотрм, что за файловая система смонтирована:
#mount
…
/dev/mapper/VolGroup00-lv0 on /tmp/yadisk type btrfs (rw,relatime,space_cache)
ага… btrfs… возникает мысль о том, что используются subvolumes. проверяем:
# btrfs subvolume list yadisk/
ID 256 gen 11 top level 5 path root
ID 257 gen 14 top level 5 path root_1
на всякий пожарный проверяем, какой том монтируется по умолчанию:
# btrfs subvolume get-default yadisk/
ID 256 gen 11 top level 5 path root
значит нужно смонтировать root_1 и посмотреть, что в нём:
# mkdir root_1
# mount -o subvol=root_1 /dev/VolGroup00/lv0 root_1/
# ls -lR root_1
root_1:
итого 4
drwxr-xr-x 1 root root 0 апр 9 18:05 root
-rw-r–r– 1 root root 66 дек 23 21:30 root.txt.gz
root_1/root:
итого 0
# zcat root_1/root.txt.gz
You fount it!
D2Dfbb4Sxxkl23Dfcs1082
таким образом, делаем вывод о том, что именно этот файл мы и должны были найти.7. MariaDB tuning
правим конфиги
query_cache_size = 32M
thread_cache_size = 6
innodb_buffer_pool_size = 2G можно было и поменьше…закомментировал
#innodb_file_per_table = 1Оптимизировал таблицы OPTIMIZE TABLE data;
8. HG
”Создать файл /root/repo/exclude
в файл exclude написать exclude *.gz”в файле nano /etc/mercurial/hgrc написать
[extensions]
convert=
hg convert –filemap exclude /root/repo /root/repo2Смотрим лог hg
hg log | grep 7c695bb105a1
Видим что 7c695bb105a1 имеет номер 0
changeset: 0:7c695bb105a1
Удаляем запись с номером 0
hg strip -r 0запустить сервер
hg serve –daemon –port 8000 –prefix /root/repo29. Strange file
chattr -i file
-
Plus: опубликована новая запись:
Найстройка DNS сервера на базе Ubuntu 12.04 6 г., 8 мес. назад · Просмотр
Все началось с установки kolab. Все ставилось, но при запуске setup-kolap вылетала ошибка:
Warning: hostname mail is not a fully qualified host and domain name
Решил настраивать DNS сервер, решил сделать на этой же машине. Итак примтупим. Для начала необходимо поставить собственно сам dns:sudo apt-get install bind9
Перейдем к настройке. Первым делом “поковыряем” файл named.conf.options:[...]
-
Plus: опубликована новая запись:
Настройка ejabberd сервер + mysql + pyticq транспорт 6 г., 11 мес. назад · Просмотр
Обычная история про то, как я устанавливал обычный корпоративный сервер для общения между сотрудниками, так и через внешние аккаунты некогда популярных сетей общения. 1. Базовые настройки Настройки /etc/ejabberd/ejabberd.cfg почти все стандартны, за исключением указанных ниже: override_local. Укажем логин администратора (у jabber-сервера свой администратор, не путать с системным) и имя сервера: %% Admin user {acl, admin, {user, “info”, “omsklug.com”}}. %% [...]
-
Plus: опубликована новая запись:
Веб-регистрация пользователей ejabberd 7 г., 4 мес. назад · Просмотр
Итак имеется, настроенный ejabberd с базой данных на mysql. Необходимо сделать регистрацию через веб интерфейс. После долгих поисков модуля ejabberd для организации веб-регистрации клиентов, не нашлось ничего подходящего. По этому пришлось обратиться за помощью к php и mysql. В интернетах полно вариантов скриптов php для регистрации. По всей своей сути они идентичны, берем данные у [...] -
Plus: опубликована новая запись:
Потоковое вещание с минимальными затратами 7 г., 8 мес. назад · Просмотр
Добрый день. Сегодня разберемся как пустить потоковое аудио по сетям с минимальными затратами. Я использовал: Ubuntu Server, пакет mpd, Sonata – приложение для управления плеером, ну и любой проигрыватель. Итак имеем комп уже с установленной системой и настроеным ssh доступом. Это виртуальная машина, с диском всего в 5 Gb. Есть папка с музыкой в сети, вот [...]
-
chemtech: создана тема Нужна помощь в вычитке Руководства по Ubuntu Server в форуме группы
Ubuntu: 7 г., 11 мес. назад · Просмотр
Нужна помощь волонтеров в допереводе Что нужно сделать: – войти в launchpad.net – открыть Руководство по Ubuntu Server – http://help.ubuntu.ru/wiki/%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_ubuntu_server – открыть перевод русский перевод Ubuntu Server Guide для 12.04 – https://translations.launchpad.net/serverguide/precise/+pots/serverguide/ru/+translate – начать читать “Ubuntu Server Guide” – непереведенным строкам предложить перевод на launchpad.net, либо найти перевод в Руководство по Ubuntu Server – найти [...]
-
-
chemtech: оставлен комментарий на запись в блоге
Направлениe в библиотеки школ и ВУЗов Linux-материалов 8 г. назад · Просмотр
Кстати, фотография книг, дисков и плакатов тут: http://imagepub.org/14311-1354109330
-
chemtech: оставлен комментарий на запись в блоге
Направлениe в библиотеки школ и ВУЗов Linux-материалов 8 г. назад · Просмотр
https://docs.google.com/spreadsheet/ccc?key=0AqX3SOAgohFhdG04NlE5aUJVb0FVbW9HNzl2VVc2X0E “Выдача плаката, книги и диска по Ubuntu” – документ Google
-
troe: оставлен комментарий на запись в блоге
Фильтры для GIMP от elsamuko 8 г., 1 мес. назад · Просмотр
скорее всего это https://sites.google.com/site/elsamuko/gimp
спасибо, поправил -
free_user: оставлен комментарий на запись в блоге
Фильтры для GIMP от elsamuko 8 г., 1 мес. назад · Просмотр
по ссылке выдает Page not found
-
Plus: опубликована новая запись:
Управляем сервером посредством SMS 8 г., 2 мес. назад · Просмотр
Основной источник: http://habrahabr.ru/post/114912/ Началось всё с того, что я наткнулся на эту статью в Интернете, сразу нашел завалявшиеся в закромах USB модемы. Сначала следовал по инструкции и установил ряд пакетов: apt-get install usb_modeswitch minicom smstools После чего поправил конфиг /etc/usb-modeswitch.conf: DefaultVendor = 0x12d1 DefaultProduct = 0x1446 MessageEndPoint = “0x01″ MessageContent = “55534243000000000000000000000011060000000000000000000000000000” Это все делалось только для перевода модема в режим [...]
-
Александр: опубликована новая запись:
Установка флагов раскладки клавиатуры в Ubuntu 12.04 8 г., 2 мес. назад · Просмотр
В Ubuntu 12.04 метод установки национальных флагов индикатора раскладки клавиатуры несколько отличается от предыдущих версий. Итак: 1. Создаем папки: mkdir ~/.icons mkdir ~/.icons/flags 2. Копируем туда файлы с картинками для отображения в индикаторе: ru.png и us.png. Не обязательно *.png, можно даже *.svg, а может кто-то попробует и анимированный *.gif?. Смотрим какой режим включен командой: gsettings get org.gnome.libgnomekbd.indicator show-flags [...]
-
Александр: опубликована новая запись:
Проброс USB устройств в гостевую ОС KVM. 8 г., 2 мес. назад · Просмотр
Пришло время запускать сервера в работу! Первой задачей стало возможности использования компьютерных программ фирмы 1С сразу двух версий: 7.7 и 8.2. Причем конфигурации защищаются аппаратными ключами Katran. именно это стало первой причиной использования проброса USB в гостевую операционную систему, обитающую в KVM (Kernel-based Virtual Machine). Перерыв весь Интернет, нашел много информации и методов для решения этой задачи. В [...]
-
troe: оставлен комментарий на запись в блоге
Ubuntu 12.10 Massive Start 8 г., 3 мес. назад · Просмотр
шутка же ж!
-
troe: оставлен комментарий на запись в блоге
Ubuntu 12.10 Massive Start 8 г., 3 мес. назад · Просмотр
тут
-
Александр: опубликована новая запись:
Смена кодировки в Gedit Ubuntu 12.04 и выше 8 г., 3 мес. назад · Просмотр
Для смены кодировки в gedit в Ubuntu 12.04, где меня постигла эта проблема, запускаем редактор конфигурации, либо нажимаем alt+f2, либо через Терминал и вводим:
dconf-editor
Переходим в ветку
org —> gnome —> gedit —> preferences —> encodings
в поле auto-detected дописываем нужную нам кодировку.
PROFIT!
-
free_user: оставлен комментарий на запись в блоге
Первая в мире линуксовка в троллейбусе 8 г., 3 мес. назад · Просмотр
Информация к размышлению:
Wi-Fi теперь и в автобусе.
http://tvoiomsk.ru/item.asp?id=7951 -
Александр: опубликована новая запись:
Проброс порта через ssh тунель 8 г., 3 мес. назад · Просмотр
Разберем проброс порта через ssh тунель к себе на компьютер, своего рода подключение удаленного порта на ноутбук в моём случае. Дано: ноут <-> Интернет <-> host1 (шлюз) <-> Локальная сеть <-> host2 (рабочая станция). Нам нужно получить rdp-доступ к host2, который находится за host1 шлюзом. Итак в Терминале: ssh login@host1 -L 33389:host2:3389 Разберем подробнее: login@host1 [...]
-
free_user: оставлен комментарий на запись в блоге
Как сменить курсор в Ubuntu Linux 8 г., 3 мес. назад · Просмотр
Удивительно, такая тривиальная операция требует манипуляций в в консоле…
Почему для правки таких элементов темы нет гуя?! Стукните разработчиков, пожалуйста… - Загрузить еще