Библиотека сайта rus-linux.net
Пароли в Linux & формат файла Shadow
Традиционные Unix системы хранят данные о пользователях вместе с
зашифрованным паролем в текстовом файле
``
''. Поскольку
этот файл используется многими инструментальными средствами (типа ``ls'')
чтобы отобразить владельца файла и другие подобные сведения, файл должен быть
открыт на чтение для всех, что, конечно, дает отличный шанс хакерам./etc/passwd
Другой метод хранения информации, тот, который я всегда использую,
затенение паролей. Как и раньше, есть файл /etc/passwd с данными о
пользователях. Однако, вместо паролей ставится символ “x”, а
пароли хранятся отдельно в файле ``
'', в котором хранятся зашифрованные пароли и некоторая
дополнительная информация о паролях. Файл /etc/shadow доступен для чтения
только root, что повышает защиту.
/etc/shadow
В 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-страницы.
-
Пользовательская оболочка. Обычно используется ``
'' для доступа к оболочке bash./bin/bash
Если нужно чтобы пользователь не имел доступа к shell, создайте скрипт
``
'', который
выведет соотвтетствующее сообщение и завершит работу пользователя. Впишите
скрипт сюда в качестве оболочки./bin/sorrysh
Замечание: Если пользователь должен передавать файлы по “FTP”
shell должна быть нормальной оболочкой, например,
`` |
Файл ``
''
хранит данные о пользователе в формате:/etc/shadow
smithj:Ep6mckrOLChF.:10063:0:99999:7::: |
Как и в файле passwd, каждое поле в файле shadow отделяется двоеточием:
-
Username, до 8 символов. Совпадает с username в файле /etc/passwd.
-
Пароль, 13 символов (зашифрованный). Пустая запись (то есть, ::) показывает, что для входа пароль не нужен (обычно идея плохая), и запись ``*'' (то есть, :*:) показывает, что вход заблокирован.
-
Количество дней (с 1 января 1970), когда пароль был сменен в последний раз.
-
Число дней до смены пароля (0 показывает, что он может быть сменен всегда).
-
Число дней, после которых пароль должен быть сменен (99999 показывает, что пользователь может не менять пароль фактически никогда).
-
Число дней, в течение которых пользователь получает предупреждения о необходимости пароль сменить (7 для полной недели).
-
Число дней после окончания действия пароля, когда еще можно работать. Если пароль не сменить, после данного срока он выдохнется, и аккаунт будет заблокирован.
-
Число дней, начиная с 1 января 1970, после которых пароль будет заблокирован.
-
Зарезервировано для возможного будущего использования.
Назад | Оглавление | Вперед |
Removing User Accounts | Локальное оглавление | System Shutdown and Restart |