Would you like to make this site your homepage? It's fast and easy...
Yes, Please make this my home page!
Максим Мошков. Истории из жизни администратора unix, или Грабли
Максим Мошков. Истории из жизни администратора unix, или Грабли
История 1 со счастливым концом. Испорченный /etc/passwd
> Один товарищ (не я :), это из Коми) решил своему root'y вместо положенного
> /sbin/sh сделать /bin/ksh
> Для чего отредактировал /etc/passwd, но неудачно, ошибся и назначил
> /sbin/ksh.
> Пробовали:
> $ su root -c /sbin/sh
> Не помогло. Теперь он горько плачет и хакера зовет.
> Можешь помочь, или суровое: переустанови юних?
Это мы проходили. Классика. Перво на перво "никогда, НИКОГДА,
не меняй shell у суперюзера..." :-)
0. Запустить shell из под root'а все-таки можно: su root -m -s /bin/sh
Но если еще и пароль забыт, тогда - поможет загрузка в
single user mode или загрузка с CD/floppy/tape
1. Дать команду df, посмотреть минор/мажор у девайса, на
который монтируется корень, и затем почитать мануал по команде
mknod # mkdev, mknode, mksf - создать специальный файл
# или как там еще она называется
и записать на бумажке команду, которой создается
спец-файл /dev/root (или куда там монтируется "/"
2. Загрузиться с инсталляционного стриммера/дискеты/CD.
и там где уход на install/update/system maintance пойти на
"system maintence" (это всего навсего shell root'овый)
Осталось смонтировать /dev/root на /mnt
и редактировать /mnt/etc/passwd
Засада No 1
Сразу после загрузки мини-системы специальных файлов
соответствующих жесткому диску нет (!). Сделать его ручками -
команда mknode уже записана на бумажке.
Засада No 2
Редактор vi не запускается (Нет terminfo) Ну и черт с ним.
Придумаешь что нибудь. Например
echo "toor::0:0:Yet another Super-User:/:" >> /mnt/etc/passwd
^^^^^^
обрати внимание что >> а не > (Угадай почему :-)
а можно и так:
PATH=$PATH:/mnt/bin:/mnt/usr/bin export PATH
TERMINFO=/mnt/usr/lib/terminfo # или где он там
Короче - ты дома потренируйся, а потом в Коми напиши точные
имена файлов и команд, а то боюсь необученный админ сможет
промахнуться пару раз, а здесь промахиваться нельзя.
История 2 почти о том же. Испорченный /etc/fstab
Date: 20 Apr 1997
From: Bernshtam Pavel (barnshte@CS.bgu.ac.il)
У меня тоже было - запортил я /etc/fstab и сделал reboot не
заметив ошибки - бабах - поднимается (а это был Axil с SunOS
4.1) в single user.
я делаю ls - Command not found - понятно - не замоунтил /usr
посмотрел я на другом SUN'е что есть в /sbin - нашел mount,
обрадовался - сделал /sbin/mount /usr.
Есть VI!
Помучался пока установил нужный set TERM с полчаса - запустил
VI. открываю fstab - фигня со строками (вот оно - не работайте
в PICO, учите VI !!!), исправил, save'лю - а root partition то
READ ONLY !!!
Делаю stop-A.
Слава богу, посоветовали мне, что в boot-мониторе можно сделать
b -rw (замаунтить с write), после этого я повторил всю
процедуру с mount и VI и исправил /etc/fstab.
а... еще забыл - VI не запускался пока я /var не замаунтил, т.к
/tmp - линк на /var/tmp , а VI без /tmp не идет.
/* а на Linux специальная команда есть - перемонтироваться на
read-write - ее из single-user-mode можно выполнить
mount -n -o remount /
*/
Ввиду того, что под шаблон ".*" подходит каталог ".."
НИКОГДА НЕ ДЕЛАЙТЕ КОМАНДЫ rm -r .*
(Большинство unix'ов прощают подобную ошибку, но НЕ ВСЕ)
From: Павел Северов
"... решил я на нашем SCO-шном сервере с Oraclовской базой
расчистить немного свободного места на диске..."
# cd /usr/tmp
# rm -rf *
гляжу, а там всякий хлам остался /usr/tmp/.X11-0 ну и т.п.
А я тогда
# rm -rf .* # ОЙ!
# du
ldd: Can not open file
# df
ldd: Can not open file
# ls -al
ldd: Can not open file
. . .
У этой истории грустный конец. Вы уже догадались, что
/usr/tmp/.* содержит в себе /usr/tmp/.. После reboot'а машина,
не найдя каталога /usr уже не ожила.
Удаленный доступ или "Запасной ключ от сейфа лежит в сейфе"
Хорошая штука, Unix + TCP/IP - можно отконфигурить машину
у черта на куличках не вставая с рабочего места и даже не
выходя из дома.
История 1. Вот и я однажды менял то ли IP-адрес, то ли
роутинг на удаленной машине... Короче - промахнулся, сказал
ifconfig eth0 down
Вот собственно и все. Сказать
ifconfig eth0 NEW-IP было уже некому.
Вы конечно догадались, что _НАДО БЫЛО_ одной строкой писать
ifconfig eth0 down ; ifconfig eth0 NEW-IP up ; route add ...
История 2. Захотелось повысить уровень security. Пишем
в /etc/hosts.deny
ALL:ALL
в /etc/hosts.allow
ALL:193.263.12.13
^^^ вроде бы маленькая ошибочка, цифры переставить, а
нельзя - я уже успел отлогиниться.
Удаленный "доступ" или "Ключа вообще нет"
Повис у нас однажды сервер, надо reset нажать,
перегрузить, а комната заперта, и ключи уже унесли. И telnet'ом
не войдешь - некуда.
Вырубили свет на всем этаже, включили вновь - voila!
Новая /lib/libc.so - апгрейд LIB C
Linux. 1993 год. Потребовалось подменить LibC. Ну, вперед,
делов-то - старую передвинуть, новую - на ее место.
cd lib
mv libc.so libc.so-old
mv libc.so-new libc.so
ldd: Can not execute, shared library not found
Finish.
Пришлось грузиться с дискеты, монтировать hd.
Но, как это не смешно, в следующий раз те же команды,
записанные в одну строку сработали. Или библиотечка в кэше
оказалась... Темна вода в Linuxе. Впрочем, файлы из каталога
/sbin - обычно staticaly-linked - им для работы разделяемая
libc без надобности.
История 1. Trusted mode - безопасность превыше всего
В HP-UX новички администраторы очень любят sam'ом поиграть
- GUI, мышиный интерфейс - администрируй на здоровье. Вот
только читать сообщения надо - а они по английски все.
Очень легко, одним "Ok" в SAM включается перевод системы в
trusted режим. Включают, и не замечают. А замечают через пару
дней, когда с трех раз не угадают пароль root. В trusted режиме
логин после этого блокируется совсем, а другого юзера ПЕРЕД
ЭТИМ завести - не догадываются.
Как всегда - нас спасет single user mode: перехват
загрузки в prompt IPL и затем
IPL> hpux -is
А затем запуск sam. И переконвертировать систему в "untrusted"
# mount -a
# sam
Но если вы ухитрились еще и пароль на boot включить - то
помогайте себе сами.
История 2. Security class C2: о том же, но в SCO
Security class C2 - это повышенная безопасность. И повышенный
геморрой для пользователей. И для администратора - тоже.
Привелось нам позвонить на защищенную SCO машину из Москвы
в Питер, по модему. Скорости getty с первого раза подобрать не
смогли, на логин прорывался 6-битный мусор, после третьей
попытки вместо getty Login мы увидели "Intruder attempts, tty
line /dev/modem disabled".
Через пару недель хозяин машины вернулся в Питер и вернул getty.
Last-modified: Sun, 19-Jul-98 10:51:26 GMT