Книги по концепциям пользования и администрирования *nix машин?
Посоветуйте плиз книги по концепциям пользования и администрирования *nix машин.
Книги, которые я обычно вижу, рассказывают так: вот есть Линукс, очень стабильная система, вот ее файловая система, в этой папке лежат драйвера, а в этой лежат юзерские файлы, вот это Шелл, скриптик пишется вот так, который выводит что-то, вот так мы конфигурим юзеров, а вот так мы настраиваем фаервол. Все это с той или иной долей углубления.
Это все не интересно, я все это знаю и это перетекает из одной книги в другую.
Интересны книги, которые отвечают на вопросы «почему» и «какой подход».
Я вот например не могу понять зачем нужен sudo, если все равно чтобы что-то установить приходится выдавать юзеру все пермишены, и он тупо заходит под sudo -L и там работает как ни в чем не бывало из под рута (а если не работают, то это надо филигранно выложить права, что я как-то с трудом представляю как это делать надо)
Или вот надо установить какой-то пакет. Сначала надо пойти добавить репозиторий с помощью wget'а, потом выполнить какой-то определенный сет команд, который известен заранее. Почему не отдавать разработчику тупо .sh скрипт, который будет делать тоже самое (про настройку я здесь не говорю).
Или вот как облегчают жизнь provisioning тулы (chef, puppet)? Чтобы там установить какой-нить пакет посложнее apache, руками надо пойти поменять какой-нибудь .bashrc, поменять пару строчек в конфиге этого свежеустановленного тула, поменять владльца третьих файлов на пользователя, которого создает установщик, что-то там в интерактивном режиме засетапить, поменять что-то и тут же протестить, и если нет, то переделать. Короче такую настройку просто списком команд мне не представляется возможным задать.
Или вот например была дискуссия на каком-то форуме забугорном, куда расскладывать файлы приложений: в /usr/local, /etc/, /opt или тонким слоем по всем этим директориям в зависимости от типов файлов.
Ну в общем вопросы мироздания хотелось бы постичь. Потому что команды я в системы выполнить могу, но каждый раз когда я заканчиваю что-то делать (попутно записывая что я делал в файлик или надеясь на собственную память), возникает непреодолимое желание прибить систему, поставить заново чистую и повторить _еще_ раз, но уже «все правильно», хотя понимания этого «правильного» как-то нет.
про пользователя и установку — достаточно выдать права на исполнения пакетного менеджера от рута. более того — достаточно выдать права на исполнения пакетного менеджера с параметром install и только с ним.
про автоматизацию — не углубляясь в подробности — вы не правы. всё можно описать. а файлы править такими утилитами как sed, awk, vi… это лишь самый малый список.
про «тонким слоем» — man 7 hier — выдаст текст про то как в _данной_ системе это «правильно».
в общем вам не книжку надо, а знакомого гуру. который ответит на ваши вопросы. собтвенно приглашаю в Санкт-Петербургскую группу пользователей Linux. Подписывайтесь на рассылку, задавайте вопросы. Если хотите вживую пообщаться — приходите на собрания (они проходят каждую последнюю среду месяца на ф-те географии университета, 10я линия, 35, белая дверь на первом этаже сразу напротив входной двери).
напрямую отвечая на ваш вопрос я рекомендую такой список литературы:
Спасибо, очень полезно. Я не админю, просто так как люблю делать все правильно и по работе приходится сталкиваться с разворачиванием всякого на nix'ах, хочется и там правильно все делать. Надеюсь как-нибудь пересечемся на собрании!
Маны, документация, исходники, списки рассылки, обсуждения с коллегами. Но главное, конечно — это практика.
Вообще, лучше всего обучаешься тому, с чем работаешь на практике, затем тому, что обсуждаешь в диалоге с другими людьми, и лишь затем идут односторонние источники информации, вроде, книг.
Потому лучшим способом обучения будет устройство на работу с коллективом из хороших специалистов.
Могу рассказать, кстати, про sudo. Преимущество утилит этого класса в том, что можно через лог отслеживать повышение привилегий, а также сам администратор может повышать свои права при необходимости, чтобы при этом меньше работать под root и случайно не сделать там чего-либо нехорошего. Если же сравнивать sudo и su, то sudo лучше тем, что позволяет, в частности, тонко настроить права доступа отдельных пользователей и групп к определенным программам, например, разрешить пользователям из группы @room312 выполнять "/usr/sbin/shutdown -h now" с правами пользователя root и не более того.