Знаете ли вы: командная оболочка для root в Solaris 10Solaris 10: советы и приёмы системного администрирования |
|
Sponsored LinksКатегорииLinksUnix Tutorial
Personal Development Ruslan Valiev Solaris Performance Team Damien Farnham Fintan Ryan Nicky Veitch Niall Mullen Sean McGrath DTrace Bryan Cantrill Brendan Gregg ZFS Tim Foster General Ben Rockwood Learning Solaris 10 Privacy policy |
Wednesday, 27 September. 2006Знаете ли вы: командная оболочка для root в Solaris 10
Как вы знаете, традиционно в Solaris следовало оставлять для root'а оболочку /sbin/sh. Делается это в Solaris 8 и Solaris 9 потому, что все библиотеки, которые могут понадобиться для динамической линковки, находятся в /usr/lib, а /usr очень часто может быть отдельной файловой системой, недоступной при аварийной загрузке.
Для того, чтобы избежать невозможности входа в систему суперпользователя, ему назначается оболочка /sbin/sh, которая слинкована статически, т.е. не требует никаких внешних библиотек: bash-2.03$ file /sbin/sh /sbin/sh: ELF 32-bit MSB executable SPARC Version 1, statically linked, stripped bash-2.03$ ldd /sbin/sh ldd: /sbin/sh: file is not a dynamic executable or shared object Но знали ли вы, что в Solaris 10 появилось сразу два улучшения ситуации по поводу оболочки для root? Вот они: 1) Теперь библиотеки находятся в /lib, и следовательно всегда оказываются на доступной при аварийной загрузке файловой системе. Из-за этого, /sbin/sh теперь является обычным динамически исполняемым файлом: bash-3.00$ file /sbin/sh /sbin/sh: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped bash-3.00$ ldd /sbin/sh libgen.so.1 => /lib/libgen.so.1 libsecdb.so.1 => /lib/libsecdb.so.1 libc.so.1 => /lib/libc.so.1 libnsl.so.1 => /lib/libnsl.so.1 libcmd.so.1 => /lib/libcmd.so.1 libmp.so.2 => /lib/libmp.so.2 libmd5.so.1 => /lib/libmd5.so.1 libscf.so.1 => /lib/libscf.so.1 libdoor.so.1 => /lib/libdoor.so.1 libuutil.so.1 => /lib/libuutil.so.1 libm.so.2 => /lib/libm.so.2 /platform/SUNW,Ultra-5_10/lib/libc_psr.so.1 /platform/SUNW,Ultra-5_10/lib/libmd5_psr.so.1 2) Solaris 10 имеет встроенную защиту от неисполняемых оболочек для root. Так что, если при аварийной загрузке ваша нестандартная оболочка не может быть запущена, вам автоматически будет предоставлена стандартная /sbin/sh. Такая же защита существует для команды sudo. Таким образом, больше нет совершенно никаких препятствий, запрещающих вам поменять стандартную оболочку root на bash или любую другую. Обратные ссылки
URI этой записи для создания обратных ссылок (trackback)
Нет обратных ссылок
Комментарии
Показывать комментарии
(Как список | Древовидной структурой)
насколько я помню ограничение на shell для root было еще и из-за того что многие скрипты для запуска демонов были на sh расчитаны и под другими шелами не тестировались/не работали
ну и в стандарте POSIX именно sh описан
Стыдно, конечно, признаваться, но меня стандарты POSIX недолго бы удержали от смены шелла ;)
Хотя я на самом деле и сейчас до сих пор /sbin/sh на root'е имею. Просто на тренинге вспомнилась эта тема, вот и решил написать заметку.
я как вспомню сколько мне серваков пришлось подымать после смены sh на bash... подымать сервисы которые стартовать и отрабатывать перестали...
я руту никогда shell не меняю...
Осторожность ещё никому не мешала ;)
Просто если когда-то в прошлом что-то не работало, а теперь подобные вещи исправлены - то почему бы и не попробовать? Это я не уговариваю, конечно, а в продолжение беседы говорю. Я сам - тоже не поменял нигде шеллов пока :)
у нас zsh везде :)
А зачем Solaris'у sudo?
Так это просто отдельная совершенно тема :)
|




