Пароли в Linux & формат файла Shadow
Традиционные Unix системы хранят данные о пользователях вместе с зашифрованным паролем в текстовом файле ``/etc/passwd''. Поскольку этот файл используется многими инструментальными средствами (типа ``ls'') чтобы отобразить владельца файла и другие подобные сведения, файл должен быть открыт на чтение для всех, что, конечно, дает отличный шанс хакерам.
Другой метод хранения информации, тот, который я всегда использую, затенение паролей. Как и раньше, есть файл /etc/passwd с данными о пользователях. Однако, вместо паролей ставится символ “x”, а пароли хранятся отдельно в файле ``
/etc/shadow'', в котором хранятся зашифрованные пароли и некоторая дополнительная информация о паролях. Файл /etc/shadow доступен для чтения только root, что повышает защиту.
В Red Hat Linux установка пакета Shadow Password Suite, ответственного за теневые пароли, проста. Наберите как root:
/usr/sbin/pwconv Для конвертации в формат shadow /usr/sbin/pwunconv Для конвертации назад в нормальный формат |
С теневыми (shadow) паролями файл ``/etc/passwd'' хранит сведения о пользователях в виде:
smithj:x:561:561:Joe Smith:/home/smithj:/bin/bash |
Каждое поле в записи отделено символом “:”:
-
Username, до 8 символов. Регистр важен, обычно пишут в нижнем регистре.
Символ “x” в поле пароля. Пароли хранятся в файле ``/etc/shadow''.
Числовой user id. Назначается скриптом ``adduser''. Unix использует данное значение и значение группы для определения кому какие файлы принадлежат.
Числовой group id. Red Hat использует group id в довольно неожиданном способе усиления защиты файла. Часто group id равен user id.
Полное имя пользователя. Максимальная длина мне неизвестна, но лучше ограничиться разумными рамками (до 30 символов).
Домашний каталог пользователя. Обычно /home/username (например, /home/smithj). Там хранятся все личные файлы пользователя и его web-страницы.
Пользовательская оболочка. Обычно используется ``/bin/bash'' для доступа к оболочке bash.
Если нужно чтобы пользователь не имел доступа к shell, создайте скрипт ``/bin/sorrysh'', который выведет соотвтетствующее сообщение и завершит работу пользователя. Впишите скрипт сюда в качестве оболочки.
Замечание: Если пользователь должен передавать файлы по “FTP” shell должна быть нормальной оболочкой, например, ``/bin/bash'', а чтобы не давать shell-доступа надо настроить доступ в домашнем каталоге пользователя. См. раздел Администрирование Web-сервера и HTTP Proxy в главе 7. |
smithj:Ep6mckrOLChF.:10063:0:99999:7::: |
Username, до 8 символов. Совпадает с username в файле /etc/passwd.
Пароль, 13 символов (зашифрованный). Пустая запись (то есть, ::) показывает, что для входа пароль не нужен (обычно идея плохая), и запись ``*'' (то есть, :*:) показывает, что вход заблокирован.
Количество дней (с 1 января 1970), когда пароль был сменен в последний раз.
Число дней до смены пароля (0 показывает, что он может быть сменен всегда).
Число дней, после которых пароль должен быть сменен (99999 показывает, что пользователь может не менять пароль фактически никогда).
Число дней, в течение которых пользователь получает предупреждения о необходимости пароль сменить (7 для полной недели).
Число дней после окончания действия пароля, когда еще можно работать. Если пароль не сменить, после данного срока он выдохнется, и аккаунт будет заблокирован.
Число дней, начиная с 1 января 1970, после которых пароль будет заблокирован.
Зарезервировано для возможного будущего использования.
Назад |
Оглавление | Вперед |
Removing User Accounts | Локальное оглавление | System Shutdown and Restart |