- *чгк *сисадминское *linux *вброскак снять PAGEEXEC с ELF binary?
как посмотреть конфиг из kernel image? (предполагается что информация там есть)
как поделить CPU ресурс между 3-мя группами процессов в соотношении 1:4:16?
как обмануть приложение так, чтобы оно циклически перезаписывало лог длинной в n строк?
как выбраться из chroot в рантайме? (привилегии есть)
как отмонтировать / ?
как проерить отсутствие глупых ошибок в конфигурации grub не перезагружая систему? (для простых инсталляций)
как посмотреть env/limits конкретного процесса?
как узнать опции, с которым было загружено ядро, не имея доступа к конфигурации bootloader?
как развесить сетевые карты по разным ядрам? (бонус: тоже самое, только с hotswap CPU и hotswap PCI (бонус-бонус: АВТОМАГИЧЕСКИ!!!))
бонус-вопросы:
как загрузиться со swap раздела?
как на ходу можно проверить планку RAM?
как использовать сигнал GPS для установки I2C clock rate?
как выключить хост, не используя ничего кроме утилиты yes в шелле?
как упаковать работающую систему в LXC контейнер без остановки сервисов?
Replies (26)
- @Cthulhu-from-ban:Наши админы передают тебе спасибо за готовый опросник для собеседования.#1692495/3from пстача, 4 months ago
- @xl0:Ну, давайте отвечать сами кто что знает. Как посмотреть конфиг из kernel image? — скрипт scripts/extract-ikconfig в сорцах ядра. Как узнать опции, с которым было загружено ядро — /proc/cmdline.#1692495/5from BitlBeeCA938DA7, 4 months ago
- @Cthulhu-from-ban:@xl0 Давайте )
1) paxctl -p filename
2) extract-ikconfig
3) cpu.shares пропорционально поставить
4) Хуй знает
5) exit?
7) grub-script-check
8) /proc/id нужного процесса/environ, и там же /limits#1692495/6from пстача, 4 months ago, in reply to /5 - @anton0xf:
как посмотреть конфиг из kernel image?
/usr/src/linux/scripts/extract-ikconfig bzImage
или загрузиться c него и less /proc/config.gz#1692495/7from emacs, 4 months ago - @Cthulhu-from-ban:
как выключить хост, не используя ничего кроме утилиты yes в шелле?
Перенаправить ее вывод в crontab и записать туда команду выключения? )#1692495/8from пстача, 4 months ago - @lin-chao-monk:@ygrek только на обычные вопросы, потому как они все впринципе гуглятся. дам завтра вечером или раньше, если для всех них будут реализуемые ответы.#1692495/9from web, 4 months ago, in reply to /1
- @lin-chao-monk:@Cthulhu-from-ban
пропустил 2 вопроса. попробуй догадаться
>5)exit — нарушение рантайма шелла.
>7)grub-script-check — вариант, но у меня есть способ поинтереснее, который проверяет больше возможных багов.#1692495/10from web, 4 months ago, in reply to /6 - @ygrek:@lin-chao-monk гуглить не спортивно :)
4 — очевидно надо написать программу которая юудет это делать и запайпить. т.к. ни на чём кроме sed'а труЪ админ писать не будет — то вот почти рабочий вариант (out.txt предварительно нужно создать нужного размера) — | sed -e i+c -e a. -e a,w\ out.txt -e 1~3i.\\n1c | ed out.txt
6 — забайндить что-нибудь сверху и перегрузить все демоны?
7 — скопировать в qemu и там загрузиться#1692495/11from x, 4 months ago, in reply to /9 - @lin-chao-monk:
мои варианты для обычных вопросов
1)paxctl
2)extract-ikconfig
3)libcgroup
4)mkfifo
5) Вариант на C. На самом деле нужно ещё учесть некие мометы, но тут важно само понимание почему chroot не является панацеей
for(x=0;x<128;x++) {
chdir("..");
}
chroot(".");
execl("/bin/sh","-i",NULL)
6)pivot_root (после того, как вы "решили" проблему с остальными процессами)
7)qemu
8)/proc/<pid>/limits proc<pid>/environ
9)/proc/cmdline
10)irqbalance или вручную через /proc/irq
Это мои варианты. Бонусы оставляю "на подумать".
Если есть желание — могу подкинуть ещё вопросов по теме.#1692495/13from web, 4 months ago - @L29Ah:Хороший вопросник, лол. Могу только 2, 4, 6, 8, 9 и 14.#1692495/14from tkabber-home, 4 months ago
- @ulidtko:@lin-chao-monk 5) У меня этот вариант не работает.
Действительно, мануал chroot(2) напоминает, что вызов chroot не меняет working directory, и если использовать его неосторожно, может допустить «саморазчрутивание» процесса.
Но это работает только если после chroot не сделать chdir("/"). Иначе никаких шансов.
% mkdir -p /tmp/jail/bin
% cp /bin/busybox /tmp/jail/bin
% ln -s busybox /tmp/jail/bin/sh
% sudo env -i /usr/sbin/chroot /tmp/jail /bin/sh
BusyBox v1.18.4 (Ubuntu 1:1.18.4-2ubuntu2) built-in shell (ash)
Enter 'help' for a list of built-in commands.
/ # ls
bin breakout
/ # ./breakout # <-- статически скомпилированный почти дословный код вашего варианта на C
Segmentation fault
/ # cd ..; cd ..; cd ..; cd ..; chroot .; exec /bin/sh
BusyBox v1.18.4 (Ubuntu 1:1.18.4-2ubuntu2) built-in shell (ash)
Enter 'help' for a list of built-in commands.
/ # ls
bin breakout
То есть, когда ваш working directory всё ещё где-то вне чрута — выбраться можно; иначе нельзя.#1692495/15from web, 4 months ago, in reply to /13 - @lin-chao-monk:@ulidtko по этому я и дописал, что нужно учесть "моменты". главное — получить хендлер /, дальше — проще.#1692495/18from 4e4f585a, 4 months ago, in reply to /15
- @Avatar:@L29Ah там есть хитрый нюанс ;)
CLU / # mkdir -p test{bin,lib}
CLU / # mount --bind /bin /test/bin
CLU / # mount --bind /lib /test/lib
CLU / # chroot /test
bash: warning: setlocale: LC_ALL: cannot change locale (ru_RU.UTF-8)
bash-4.2# mkdir -p pr/{bin,lib}
bash-4.2# mount --bind /bin pr/bin
can't create lock file /etc/mtab~9963: No such file or directory (use -n flag to override)
bash-4.2# mount --bind /lib pr/lib
can't create lock file /etc/mtab~9964: No such file or directory (use -n flag to override)
bash-4.2# chroot pr
bash: warning: setlocale: LC_ALL: cannot change locale (ru_RU.UTF-8)
bash-4.2# mknod root b 8 5
bash-4.2# mount ./root /
can't create lock file /etc/mtab~9967: No such file or directory (use -n flag to override)
bash-4.2# exit
exit
bash-4.2# chroot pr
CLU / #
;)
/dev/root on / type ext4 (rw,noatime,user_xattr,commit=0)#1692495/24from eeepc, 4 months ago, in reply to /23 - @Ts:Хохо! Я на все обязательные и два дополнительных ответил по памяти сходу, немного горжусь собой.
Что за вакансия, сколько зп?
Алсо составление такого вопросника стоит не одного часа рабочего времени, ты уверен что уместно его публиковать?#1692495/25from TSIPA-NB3-W7, 3 months ago
