Шрифт:
Интервал:
Закладка:
7.3.1. Учетные записи пользователей
Система учета пользователей опирается на следующие конфигурационные файлы:
♦ /etc/passwd — учетная информация о пользователе;
♦ /etc/shadow — скрытая информация о пользователях: пароли в зашифрованном виде;
♦ /etc/group — информация о группах;
♦ /etc/gshadow — скрытая информация о группах;
♦ /etc/default/useradd — свойства, назначаемые по умолчанию новым учетным записям;
♦ /etc/login.defs — настройки безопасности пароля (время истечения, минимальная длина);
♦ /etc/skel — каталог, содержащий личные файлы настроек по умолчанию (когда для нового пользователя создается домашний каталог, в него помещаются эти файлы).
Файл /etc/passwd — информация о пользователяхУчетная информация о пользователях системы хранится в файле /etc/passwd в следующем виде:
username:password:UID:GID:full_name:home_dir:login_shell
Где:
♦ Username — это регистрационное имя пользователя, часто называемое логином. Обычно администраторы присваивают пользователям логины, образованные от их реальных имен. Имя root закреплено за суперпользователем. Кроме реальных пользователей, в системе существуют еще фиктивные (bin, daemon и т.п.), от имени которых запускаются общесистемные службы.
♦ Password — пароль. Обычно используются теневые пароли, и вместо пароля в файле /etc/passwd стоит знак *, а сам пароль в зашифрованном виде хранится в файле /etc/shadow.
♦ UID — уникальный числовой идентификатор пользователя из диапазона от 0 до 65534. Суперпользователю присвоен UID, равный 0.
♦ GID — числовой идентификатор первичной группы пользователя. Помимо первичной группы, пользователь может входить или не входить в состав разных групп, но в первичную группу (native group) он входит всегда. Пользователи, входящие в одну группу, могут работать с общими файлами. Первичная группа суперпользователя называется root. Ей присвоен GID, равный 0.
♦ Full_name — обычно представляет собой реальное имя пользователя, например Ivan Ivanov. Может содержать и другие данные: номер телефона и т.п. Эти сведения системой не используются, но доступны по команде finger <username>.
♦ Home_dir — домашний каталог пользователя. Стандартное место для него — это каталог /home/<username> (например, /home/den), и без особых причин изменять такую организацию домашних каталогов не рекомендуется.
♦ Login_shell — командный интерпретатор, запускаемый по умолчанию при входе пользователя в систему.
Пример фрагмента файла /etc/passwd:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
den:x:500:500:den:/home/den:/bin/bash
evg:x:501:501::/home/evg:/bin/bash
Применение теневых паролей оправдывает себя с точки зрения безопасности. Обычно к файлу /etc/passwd разрешен доступ в режиме «только чтение» всем пользователям. К файлу /etc/shadow обычный пользователь не имеет даже такого доступа.
Системы, использующие TCB (Trusted Computing Base), хранят пароли не в файле /etc/shadow, а в файлах /etс/tcb/<имя_пользователя>/shadow. Считается, что технология TCB более практична с точки зрения безопасности, поскольку доступ к паролям отдельного пользователя не позволит злоумышленнику скомпрометировать сразу всю систему. Для включения поддержки TCB нужно установить пакет tcb. Многие современные дистрибутивы (например, дистрибутивы ALT Linux) поддерживают TCB по умолчанию.
В качестве основного алгоритма шифрования используется MD5, превращающий пароль в 32-значное шестнадцатеричное число. Этот алгоритм является самым надежным. Раньше использовались алгоритмы DES и 3DES, но здесь я не буду подробно останавливаться ни на одном из них. При установке системы обычно спрашивается, хотите ли вы использовать теневые пароли (Shadow Passwords) и MD5. Я очень рекомендую вам использовать обе эти возможности.
Информация о группах пользователей. Файл /etc/groupИнформация о группах пользователей хранится в файле /etc/group в следующем формате:
имя_группы:пароль:GID:члены_группы
Пароль используется крайне редко. Пример фрагмента файла /etc/group:
root:*:0:root
bin:*:1:root,bin,daemon
local:*:100:den,operator,ivan
guest:*:200:
dialup:*:250:victor,evg
В этом примере группа root зарезервирована для пользователя root. Группа с идентификатором 100 используется для локальных пользователей. В ее состав входят пользователи den, operator, ivan. Группа guest предназначена для гостевого входа и пользователя guest. В состав группы dialup входят пользователи victor и evg.
Системой определяются группы для фиктивных пользователей: bin, sys, adm и т.п. Реальные пользователи входить в них не могут. Эти группы используются для системных файлов.
Добавить группу вы можете с помощью команды groupadd. Я. как правило, просто добавляю запись в файл /etc/group, а если мне нужно удалить группу, то удаляю соответствующую строку.
7.3.2. Создание и удаление пользователей и групп
Большинство утилит административного назначения хранится в каталогах /sbin и /usr/sbin. Полный набор утилит для управления пользователями и группами, установленных в вашей системе, вы можете увидеть по команде
# ls {/sbin,/usr/sbin}/*{user,group}*
Выполнив подстановки аргументов, командная оболочка bash превратит эту команду в четыре:
ls /sbin/*user*
ls /sbin/*group*
ls /usr/sbin/*user*
ls /usr/sbin/*group*
Чтобы добавить пользователя, выполните команду
# useradd <имя> ; passwd <имя >
Для удаления учетной записи пользователя служит утилита userdel, а для модификации существующей учетной записи — утилита usermod. Все они снабжены man-страницами.
Чтобы добавить или изменить несколько учетных записей сразу (на больших системах это приходится делать чаше, чем на персональном компьютере), можно воспользоваться утилитой newusers.
Для групп те же функции создания, удаления и модификации выполняют утилиты groupadd, groupdel и groupmod соответственно.
Если вам почему-либо неудобно управлять пользователями из командной строки, можно делать это с помощью графического конфигуратора. На рис. 7.1 показан пример работы system-config-users из дистрибутива Fedora Core 3.
Рис. 7.1. Добавление учетной записи
7.3.3. Квотирование
Что такое квотирование. Особенности квотирования в LinuxКвотирование — мощный механизм ограничения использования дискового пространства, применявшийся еще в самых ранних версиях UNIX, тогда как в состав ОС семейства Windows компания Microsoft включила их только в Windows 2000, естественно, гордо заявив об этом. Этот материал настолько объемен, что ему можно было бы смело посвятить целую главу.
При помощи квот системный администратор принуждает пользователя не расходовать неограниченный объем дискового пространства. Существует два типа ограничений: ограничение на количество файлов (inodes) и ограничение на размер дискового пространства в килобайтах (blocks). Если установлены оба ограничения, то они будут применяться одновременно.
Ограничения на inodes и на blocks могут быть установлены как для пользователя, так и для группы. Если вы входите в группу, которая превысила наложенное на нее ограничение, то вы не сможете использовать дисковое пространство, даже если вы не превысили квоту как пользователь.
Ограничения устанавливаются отдельно для каждого пользователя на каждой файловой системе. Ограничение определяется четырьмя числами:
1. Текущее значение ограничения;
2. «Мягкое» ограничение (softlimit);
3. «Жесткое» ограничение (hardlimit);
4. Период отсрочки: время, по истечении которого «мягкое» ограничение будет интерпретироваться как «жесткое».
«Мягкое» ограничение определяет число блоков, которые пользователь все еще может превысить, «жесткое» ограничение превысить невозможно. При попытке сделать это пользователь получит сообщение об ошибке. По истечении определенного времени (обычно 7 дней) «мягкое» ограничение переходит в «жесткое». За это время пользователь должен удалить ненужные ему файлы.
Ядро и поддержка квотированияВ ядро ОС Linux поддержка квотирования встроена (по некоторым сведениям, она появилась в ядре, начиная с версии 1.3.8), осталось убедиться, что она у вас включена. Если это не так, то ядро придется перекомпилировать.
После установки дистрибутива исходные тексты модулей ядра обычно находятся в каталоге /lib/modules/<версия_ядра>/build.
- Операционная система UNIX - Андрей Робачевский - Программное обеспечение
- Разработка приложений в среде Linux. Второе издание - Майкл Джонсон - Программное обеспечение
- Искусство программирования для Unix - Эрик Реймонд - Программное обеспечение
- Linux - Алексей Стахнов - Программное обеспечение
- Fedora 8 Руководство пользователя - Денис Колисниченко - Программное обеспечение
- Недокументированные и малоизвестные возможности Windows XP - Роман Клименко - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Windows Vista - Виталий Леонтьев - Программное обеспечение
- Архитектура операционной системы UNIX - Морис Бах - Программное обеспечение
- Windows Vista. Трюки и эффекты - Юрий Зозуля - Программное обеспечение