Тема 5 Концепция работы с пользователями
Система сохраняет различную информацию о каждом пользователе. К такого рода информации относится перечисленная ниже. usemame
уникальный идентификатор, присваиваемый каждому пользователю в системе. Примеры имен пользователей larry, karl и mdw. Могут использоваться буквы и цифры, а также нижнее подчеркивание и точка. Обычно имена пользователей ограничиваются восемью символами. user
ID (или UID) - идентификатор пользователя - уникальный номер, присваиваемый каждому пользователю системы. Система обычно отслеживает идентификаторы пользователей, а не имена. group
ID (или GID) - идентификатор группы это идентификатор группы пользователя. password
Система также хранит в зашифрованном виде пароль пользователя. Команда passwd используется для установки и изменения пароля. full name
"Полное имя" или "действительное имя" хранится вместе с именем пользователя. home directory
Домашний каталог - это каталог, в который пользователь изначально попадает при входе в систему. Каждый пользователь должен иметь свой собственный домашний каталог, обычно ниже /home. login shell
Исходный shell - это shell, который запускается для пользователя при его входе в систему. Это, например, может быть /bin/bash и /bin/tcsh. Файл /etc/passwd содержит эту информацию о пользователях. Каждая строка этого файла содержит информацию об одном пользователе; формат строки имеет вид:
username: encrypted_p assword: UID: GID: fulljiame: home_directory: 1 о gin_shel 1 Например, это может выглядеть так: <
kiwi :Xv8Q981 g71 оКК: 102:100:Laura Poole:/home/kiwi:/bin/bash Как видно, первое поле "kiwi" - имя пользователя. Следующее поле ,,Xv8Q981g71oKK" -зашифрованный пароль. Пароли в читаемом виде в системе не хранятся. Сами пароли шифруются как секретные ключи. Другими словами, Вы должны знать пароль, чтобы его расшифровать. Эта форма шифрации достаточно надежна.
Некоторые системы Linux используют "теневой пароль", в котором информация о паролях хранится в файле /etc/shadow. Поскольку /etc/passwd всем доступен, /etc/shadow обеспечивает дополнительный уровень секретности своей недоступностью. Теневой пароль обеспечивает и некоторые другие свойства, вроде прекращения действия пароля и т.д.; мы здесь не будем вдаваться в эти тонкости.
Третье поле, "102", - идентификатор пользователя (UID). Оно должно быть уникальным для каждого пользователя. Четвертое поле, "100", идентификатор группы (GID). Этот пользователь принадлежит к группе номер 100. Информация по группе хранится в файле /etc/group. Пятое поле - полное имя пользователя , "Laura Poole". Последние два поля - домашний каталог пользователя (/home/kiwi) и исходный shell (/bin/bash) соответственно. Домашний каталог пользователя не обязательно должен иметь имя, совпадающее с именем пользователя (username). Однако это помогает в идентификации.
Тема 6 Модернизация и инсталляция программ
Другая обязанность системного администратора - модернизация и инсталляция новых программ.
Сообщество приверженцев Linux очень динамично. Новые версии ядра появляются каждые несколько недель, да и другие программы изменяются не менее часто. Поэтому новые пользователи Linux часто чувствуют необходимость в постоянной модернизации (upgrade) своей системы, чтобы поспевать за изменениями, идущими лихой поступью. Это необходимо и это и потеря времени: отслеживать все изменения в мире Linux. Просто у Вас может абсолютно все время уходить на модернизацию системы и лишь оставшееся - на собственно использование системы.
Ну, так, когда желаете заняться модернизацией? Некоторые нутром чувствуют, что заниматься модернизацией пристало тогда, когда появилась новая версия дистрибутива, например, когда появляется новая версия Slackware. Многие пользователи Linux каждый раз при этом полностью переинсталлируют свою систему. Это тоже потеря времени. Обычно изменения от версии к версии Slackware незначительные. Бессмысленно переписывать и переинсталлировать 30 дисков, когда только 10% программ были действительно модифицированы.
Лучший вариант модернизации системы - это ручная работа: модернизируйте только те программные пакеты, про которые Вы точно знаете, что их стоит менять. Это многих путает: они хотят знать, что менять, и как, и что они теряют, если не модернизируют. Залог успеха в Linux - это преодолеть боязнь принципа "сделай сам", одного из фундаментальных принципов Linux.
Вы обнаружите, что когда Вы модернизируете одну компоненту вашей системы, другие вещи не должны ломаться. Большей частью бессмысленно заниматься модернизациями, чтобы "не отстать от моды. Другими словами модернизируйте только то, что надо, и только тогда, когда надо.
Наиболее важная часть вашей системы, как возможный объект модернизации, это ядро, библиотеки и компилятор gcc. Это три ключевые части вашей системы, и в некоторых случаях они бывают взаимозависимыми. Большая часть остального хозяйства вашей системы и без периодических модернизаций сойдет.
Модернизация ядра
Модернизация ядра - это просто надо взять исходные тексты и самому их откомпилировать. Вы должны компилировать ядро сами, поскольку вам решать, какие свойства включать и не включать, как и убедиться, что ядро будет оптимизировано применительно к вашей машине. Процесс вполне безболезненный. Исходные тексты ядра можно раздобыть на любом Linux-овском FTP-сервере. На sunsite.unc.edu, например, исходники ядра находятся в pub/Linux/kernel/. Версии ядра нумеруются с использованием номера версии ядра (kernel) и уровня исправления (patchlevel). Например, kernel version 0.99 patchlevel 11 обычно записывается как 0.99.р111, или еще проще 0.99.11.
Исходники ядра распространяются в виде зазипованных tar-файлов. ( Часто patch-файлы ("заплаты") выпускаются для текущей версии ядра, которая позволяет модернизировать исходники вашего действующего ядра на основе последнего уровня исправлений, используя программу patch). В большинстве случаев, между тем, обычно проще инсталлировать целиком новую версию ядра. Например, файл, содержащий исходники ядра 0.99.pl 11 - linux-0.99.11.tar.gz. (существуют следующие серии ядер: 0.1-0.99, 1.0.1-1.0.9, 1.1.1-1.1.95, 1.2.1-1.2.13, 1.3.1-1,3.83). Ядра, принадлежащие серии с четной 2-й цифрой (1,0, 1.2), являются стабильными, то есть не включают никаких экспериментальных кодов. Ядра серии (1.1,1.3) включают экспериментальные коды (такие как Mobile IP, IP-masquarading и т. п. в серии 1.3).
Распакуйте этот файл из каталога /usr/src; он создаст каталог /usr/src/linux, который содержит исходники ядра. Вам следует удалить или переименовать существующий /usr/src/linux перед распаковкой новой версии.
Когда исходники распакованы, вам необходимо убедиться, что две символические связи в /usr/include корректны. Для создания этих связей используйте команды
In -sf /usr/src/linux/include/linux /usr/include/linux
In -sf /usr/src/linux/include/asm /usr/include/asm
Если Вы однажды создали эти связи, нет причины создавать их снова, когда Вы инсталлируете следующую версию ядра. Обратите внимание, что для компиляции ядра у Вас в системе должны быть инсталлированы компиляторы gcc и g++ С и C++. Для компиляции ядра прежде всего выполните cd в /usr/src/linux. Выполните команду make config. Эта команда запросит у Вас несколько настроечных опций, таких как "Какой тип файловой системы Вы желаете включить в новое ядро". Затем, отредактируйте /usr/src/linux/Makefile. Убедитесь, что
определение для ROOT DEV корректно - оно определяет устройство, используемое в качестве корневой файловой системы во время загрузки. Обычное определение имеет вид:
ROOT_DEV - CURRENT Менять это нет смысла, кроме случая, когда Вы меняете устройство для вашей корневой файловой системы.
Затем выполните команду make dep для отслеживания всех взаимосвязей исходных текстов. Это очень важный этап.
И наконец, Вы готовы компилировать ядро. Команда make Image скомпилирует ядро и оставит образ нового ядра в файле /usr/src/linux/Image. Начиная с ядер серии 1.2, собранное ядро записывается в каталог /usr/src/linux/aixjM386/boot/Image (если конечно Вы собирали ядро для процессоров серии Intel, а не alpha, mips или spare.) А команда make zlmage скомпилирует скомпрессировнный образ ядра, который раскомпрессирует сам себя во время загрузки, а так занимает на диске меньше места.
После компиляции ядра Вы должны либо скопировать его на загрузочную дискету (командой вроде ч,ср Image /dev/fdO"), либо инсталлировать его, используя LILO для загрузки с вашего жесткого диска.