chemtech @chemtech ?
активность: 8 г., 1 мес. назад-
Первая игра отборочного тура 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
-
chemtech: создана тема Нужна помощь в вычитке Руководства по Ubuntu Server в форуме группы
Ubuntu: 10 г., 3 мес. назад · Просмотр
Нужна помощь волонтеров в допереводе Что нужно сделать: – войти в 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-материалов 10 г., 5 мес. назад · Просмотр
Кстати, фотография книг, дисков и плакатов тут: http://imagepub.org/14311-1354109330
-
chemtech: оставлен комментарий на запись в блоге
Направлениe в библиотеки школ и ВУЗов Linux-материалов 10 г., 5 мес. назад · Просмотр
https://docs.google.com/spreadsheet/ccc?key=0AqX3SOAgohFhdG04NlE5aUJVb0FVbW9HNzl2VVc2X0E “Выдача плаката, книги и диска по Ubuntu” – документ Google
-
chemtech: опубликована новая запись:
Audacity 2.0.2 10 г., 9 мес. назад · Просмотр
Выпущена новая версия свободного, простого в использовании звукового редактора Audacity 2.0.2 для GNU/Linux. Улучшено множество эффектов, включая “Эквалайзер” (Equalization), “Удаление шума” (Noise Removal) и “Нормализация” (Normalize). Поддерживаются плагины для VAMP анализа звука. Улучшено отображение пометок треков. Новый тулбар для устройств. Запись по таймеру. Новая панель миксера с индикаторами уровней. Автоматическое восстановление в случае внезапного падения программы. Прямой импорт WAV/AIFF файлов при чтении напрямую из источников. 100% [...]
-