etc passwd что это

Немного обо всем и все о немногом, или практический опыт системного администратора.

Октябрь 2009
Пн Вт Ср Чт Пт Сб Вс
« Сен Ноя »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Лекция №10 Пользователи, группы. Файлы passwd, shadow, group.

На этой лекции мы поговорим о пользователях (учетных записях) и группах пользователей. Как я уже неоднократно говорил операционная система Linux является многопользовательской системой в которой может одновременно существовать достаточно большое число пользователей, которых можно объединять в группы.
Все пользователи локальной системы перечислены в файле /etc/passwd. Давайте посмотрим содержимое этого файла с помощью команды less /etc/passwd. Каждая строка файла /etc/passwd описывает одну учетную запись. Несмотря на то, что у вас может быть всего два пользователя в системе (root и вы сами), строчек в файле /etc/passwd гораздо больше. Дело в том, что для большинства служб операционной системы Linux существует своя собственная учетная запись с правами необходимыми для нормального функционирования этой службы. Такой подход позволяет повысить безопасность системы. Каждая строка состоит из семи полей разделенных двоеточием. Давайте рассмотрим эти поля. Для примера возьмем следующую строку: igor:x:1000:1000:igor. /home/igor:/bin/bash.

Теперь рассмотрим файл в котором хранятся пароли пользователей. Данный файл называется /etc/shadow. В нем по аналогии с файлом /etc/passwd каждая строка описывает одного пользователя и имеет 9 полей разделенных двоеточием. Для просмотра этого файла нужны права администратора. Давайте рассмотрим поля данного файла на примере строки: root. 14438:0:99999:7.

Пример когда вместо хеша пароля стоит ! характерен для дистрибутива Ubuntu где пользователь root действительно по умолчанию не может зарегистрироваться в системе. Таким образом если вы хотите заблокировать учетную запись пользователя, достаточно перед хешем пароля установить символ !, а чтобы разблокировать учетную запись нужно убрать этот символ.

Поля 3-7 содержат временные параметры пароля. Подробнее смотрите в
man shadow.

Группы. Информация о группах хранится в файле /etc/group. Принцип тот же: строка описывает одну группу, есть несколько полей. Полей всего 4-е. Рассмотрим пример строки: shara:x:1002:igor,test.

Самый простой файл из рассмотренных. Подробнее останавливаться не будем. Все перечисленные выше файлы можно редактировать любым текстовым редактором, но для большинства операций существуют соответствующие команды. На следующей лекции мы рассмотрим как добавить пользователя в Linux, как создать группу для пользователя, добавить пользователя в группу, удалить пользователя, а также как изменять учетные данные пользователя.

Источник

Etc passwd что это

Для создания пользователя надо добавить сведения о нем в базу данных пользователей и создать домашний каталог для него. Также возможна установка начальных файлов настроек.

Большинство дистрибутивов Linux имеют программу для создания пользователей. Хуже то, что такие программы везде разные. Есть две наиболее распространенные команды: adduser и useradd ; возможно применение графического интерфейса. Пользователя можно добавить и в ручном режиме.

База данных о пользователях в Unix системах является текстовым файлом /etc/passwd (называется файл паролей (password file) ), который хранит все имена пользователей и сведения о них. Каждому имени пользователя (логину) соответствует одна строка из семи полей, разделенных двоеточиями:


Имя пользователя в системе (его аккаунт).

Пароль (в зашифрованном виде).

Полное имя и другие сведения о пользователе.

Login shell (программа, запускаемая при входе в систему).

Каждый пользователь может читать файл паролей, например для поиска имени другого пользователя. К тому же, такая возможность позволяет разлиным командам показывать имена полльзователей вместо их числовых мдентификаторов. Увы, зашифрованные пароли также доступны на чтение всем. Конечно, они зашифрованы, но теоретически (да и практически, судя по опыту переводчика) это не проблема.

На большинстве систем не имеет значения, что числовые значения идентификаторов пользователя и группы, но если Вы используете сетевую файловую систему (Network filesystem, NFS), Вы должны иметь одни и те же uid и gid на всех системах. Это потому, что NFS также идентифицирует пользователей по числовым uid. Если Вы не используете NFS, Вы можете позволить вашему инструменту создания пользоваьелей выбирать их автоматически.

Если Вы используете NFS, вы должны изобрести механизм для синхронизирования информации о пользователях и группах. Одним из вариантов является система NIS.

Вы должны избегать многократно использовать числовой uid (и текстовое имя пользователя), потому что новый владелец uid (или имени пользователя) может получить доступ к файлам старого владельца (почте, например).

Чтобы создавать нового пользователя вручную, выполните следующее:


Отредактируйте файл паролей /etc/passwd редактором vipw и добавьте строку для нового пользователя. Будьте внимательным с синтаксисом. Не редактируйте каким попало редактором! vipw блокирует файл, так, чтобы другие команды не пробовали модифицировать его в то же самое время. Вы должны записать в поле пароля ` * ‘ так, чтобы было невозможно войти.

Скопируйте файлы из /etc/skel в домашний каталог нового пользователя.

После того, как Вы устанавливаете пароль в последнем шаге, пользователь сможет работать. Вы не должны устанавливать пароль, пока все остальное не сделано, иначе пользователь может неосторожно войти, в то время как вы еще копируете файлы.

Иногда необходимо создать псевдопользователя. Такой пользователь никогда не используется как обычный. Например, чтобы установить анонимный сервер FTP станция (так, чтобы любой мог сгружать и загружать файлы без необходимости иметь логин в системе), Вы должны создать пользователя ftp. В таких случаях, пароль задавать не надо. Значит, файл пароля имеет всю информацию относительно пользователя за исключением его пароля.

Источник

/etc/passwd

/etc/passwd (от англ. passwordпароль) — файл, содержащий в текстовом формате список пользовательских учётных записей (аккаунтов).

Является первым и основным источником информации о правах пользователя операционной системы. Существует в большинстве версий и вариантов UNIX-систем. Обязан присутствовать в POSIX совместимой операционной системе.

Содержание

Принципы

login : password : UID : GID : GECOS : home : shell

Каждая строка файла описывает одного пользователя и содержит семь полей, разделённых двоеточиями:

Основным назначением /etc/passwd является сопоставление логина и идентификатора пользователя (UID). Изначально поле пароля содержало хеш пароля и использовалось для аутентификации. Однако, в связи с ростом вычислительных мощностей процессоров появилась серьёзная угроза применения простого перебора для взлома пароля. Поэтому все пароли были перенесены в специальные файлы, такие как /etc/shadow в GNU/Linux или /etc/master.passwd во FreeBSD. Эти файлы недоступны для чтения обычным пользователям. Такой подход называется механизмом скрытых паролей (см. ниже).

root:lZTB0KTrSKy8M:0:0:root:/root:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/false
bin:x:2:2:bin:/bin:/bin/false

john:H5ned8EV1vank:101:101::/home/john:/usr/bin/csh
bill:7qeFjndagetZk:102:102::/home/bill:/bin/sh

Регистрационное имя (логин)

Регистрационные имена должны быть уникальными и представлять собой строки не длиннее 32-х символов (любые, кроме двоеточия и символа новой строки). В некоторых старых версиях UNIX существует ограничение длины в 8 символов, оно же будет действовать при использовании административной базы данных NIS. По сути дела, имя пользователя — это его короткий и легко запоминаемый псевдоним, который используется при входе в систему и часто включается в адреса электронной почты.

Идентификатор пользователя (UID)

Идентификатор пользователя — это число от 0 до . В старых системах (Minix, ранние версии BSD) оно может быть не более 32 767. Пользователь с идентификатором 0 (обычно root) называется суперпользователем и имеет право на выполнение любых операций в системе. Принято соглашение о выделении «специальным» пользователям (bin, daemon), назначение которых — только запуск определённых программ, маленьких идентификаторов (меньше 100 или, в некоторых дистрибутивах Linux, меньше 500).

Безопасность

В системе могут существовать несколько пользователей с одним идентификатором. Это нередко используется взломщиками, когда они после проникновения в систему создают себе учётную запись с UID=0. В результате они выглядят как обычные пользователи, но на самом деле имеют права root.

Группы пользователей

В UNIX пользователь может принадлежать к одной или нескольким группам, которые используются для задания прав более чем одного пользователя на тот или иной файл. Максимальное количество групп, в которых может состоять один человек, разное в разных вариантах системы.

Список групп с их участниками задаётся в /etc/group. В файле же /etc/passwd указывается идентификатор группы по умолчанию.

Всем файлам, созданным пользователем после регистрации в системе, будет автоматически присвоен этот номер группы (исключение — если для каталога, в котором создаётся файл, установлен в правах бит SGID, то будет присвоена такая же группа, как у самого каталога).

Файл групп

root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm

httpd:x:100:httpd
cpanel:x:101:cpanel

/etc/group содержит записи обо всех группах в системе. Каждая его строка содержит

Здесь сообщается, что группа bin имеет GID=1, а входят в неё пользователи root, bin и daemon.

GECOS

Поле GECOS хранит вспомогательную информацию о пользователе (номер телефона, адрес, полное имя и так далее). Оно не имеет чётко определённого синтаксиса.

Первые системы UNIX в компании Bell Labs использовали компьютеры под управлением операционной системы GECOS в качестве спулеров печати и для исполнения ряда других задач; поле GECOS было введено в формат учётной записи пользователя UNIX, чтобы хранить идентификатор пользователя для предъявления системе GECOS (GECOS ID).

Тем не менее, демон fingerd предполагает, что в нём содержатся следующие элементы, разделённые запятыми:

С помощью утилиты chfn можно изменять эту информацию, а с помощью finger — узнать, например, полное имя любого пользователя в системе (или даже на другом компьютере сети).

Пример строки с заполненным полем GECOS:

Домашний каталог

После входа в систему пользователь оказывается в своём домашнем каталоге. Исторически сложилось так, что домашний каталог пользователя root называется /root, а остальные имеют вид /home/имя_пользователя. Но могут применяться и другие схемы.

Если на момент входа в систему домашний каталог отсутствует, то система выдаёт сообщение об ошибке и отказывается допустить пользователя к командной строке. Такое поведение НЕ характерно для GNU/Linux; в большинстве дистрибутивов этой ОС просто выводится предупреждение, после чего пользователь попадает в каталог «/». Это можно изменить посредством установки параметра DEFAULT_HOME в файле /etc/login.defs в значение no.

Следует отметить, что при использовании графического интерфейса (KDE, GNOME) пользователь не увидит предупреждения или сообщения об ошибке, но просто будет выведен из системы безо всяких объяснений (так как оконный менеджер не сможет выполнить запись в нужный каталог, такой как

Регистрационная оболочка

В поле регистрационной оболочки задаётся shell, то есть интерпретатор командной строки. Здесь может быть указана любая программа, и пользователь может сам выбирать для себя наиболее подходящую при помощи команды chsh. Тем не менее, некоторые системы в целях безопасности требуют, чтобы суперпользователь явно разрешил использовать приложение в качестве интерпретатора командной строки. Для этого используется специальный файл /etc/shells, содержащий список «допустимых» оболочек.

Управление базой пользователей

Использование

Почти все программы в современных GNU/Linux-системах обращаются к /etc/passwd через библиотеку glibc.

Такой подход имеет много плюсов. Например, в системе с несколькими тысячами пользователей (веб-хостинг, сервера провайдеров) очень накладно каждый раз просматривать файл в поисках того или иного человека, поэтому glibc кэширует результаты наиболее частых запросов, сохраняя их результаты в памяти. См. также библиотечные функции.

Аналоги

Возможная альтернатива хранению списка пользователей — это сервер, хранящий информацию о них в более эффективной форме (особый случай — это системы класса Win32, где эту функцию выполняет само ядро операционной системы). Более частый для UNIX вариант — сетевая база данных LDAP, которая может обслуживать сразу несколько компьютеров. Тем не менее, на одной машине подобных решений обычно избегают из-за того, что они требуют дополнительной установки специального ПО, часто содержащего и дополнительные уязвимости.

Изменив соответствующим образом файл /etc/nsswitch.conf, можно заставить библиотечные функции использовать вместо /etc/passwd другую базу данных. Например,

заставляет все библиотечные функции обращаться к системе NIS.

Значением по умолчанию (когда пользователи задаются в /etc/passwd) является

Механизм скрытых паролей

root:13$/Xhw3kaR$Vif2djTL4aQshu8aKfkl0/:12545:0:99999:7.
daemon:*:12545:0:99999:7.
bin:*:12545:0:99999:7.

john:13$80l1AVB5$6AdyTstdHpsSTsewiac8O1:13283:0:31:3:14:13514:
bill:13$UdKpet5.$ssoFdtbe21qd.FL1gj19/0:13286:0:31:3:14:13514:

В файле /etc/shadow хранятся хеши паролей всех пользователей в системе. Процессы суперпользователя могут читать его напрямую, а для остальных создана специальная библиотека PAM. Она позволяет непривилегированным приложениям спрашивать у неё, правильный ли пароль ввёл пользователь, и получать ответ. Библиотека PAM как правило действует с привилегиями вызвавшего процесса. Таким образом, хеш не попадает «в чужие руки».

Дело в том, что злоумышленник, имея набор хешей, всегда может осуществить атаку путём перебора паролей. Например, слова из словаря являются ненадёжными паролями, так как можно зашифровать словарь целиком и поискать хеши в том, что получится. Одна из наилучших программ, выполняющих такого рода атаки — John the Ripper. Также весьма популярна утилита crack.

Уровни защиты

В ранних UNIX пароль шифровался с помощью одного из вариантов DES, теперь используется MD5-хеширование или blowfish-хеширование (bcrypt), MD5-хеши всегда записываются после префикса «$1$».

Перед хешированием к паролю добавляются случайные символы — «salt» (соль, от англ. add salt to something — сделать что-либо более интересным; в русскоязычных источниках иногда используется термин «затравка»). Salt также приписывается к началу полученного хеша. Благодаря salt нельзя при простом просмотре файла обнаружить пользователей с одинаковыми паролями.

Обратите внимание, что в /etc/shadow, показанном выше, две учётные записи имеют одинаковый пароль, хотя этого и не видно.

Файл /etc/shadow

Кроме имени (первое поле каждой строки) и хеша (второе поле) здесь также хранятся

Даты обозначаются как число дней с 1 января 1970 года (начало эпохи UNIX).

Обязательная регулярная смена паролей — это популярная административная мера, призванная сделать учётные записи более защищёнными. К сожалению, многие пользователи после принудительного изменения возвращают себе старый пароль.

Применение с PAM

Следует отметить, что подобные действия влияют только тогда, когда пользователь аутентифицируется через PAM. Хотя существуют Linux дистрибутивы без технологии PAM в которых подобные действия тоже влияют. При этом также в целях безопасности создаются паузы между двумя неудачными попытками входа в систему, чтобы не дать возможность перебирать пароли через уполномоченное работать с PAM приложение.

История

Основные этапы развития схемы пользователей в UNIX:

Одно из основных событий, заставивших разработчиков перейти к механизму скрытых паролей — это атака червя Морриса.

Червь Морриса

Червь Морриса читал /etc/passwd, пытаясь подобрать пароли к учётным записям. Для этого использовалось имя пользователя (и оно же с буквами в обратном порядке), а также список из 400 наиболее популярных слов. Эта атака привела к масштабному заражению всей сети ARPANET, и именно после этого разработчики придумали /etc/shadow, а также паузы после неправильного ввода пароля.

Библиотечные функции

Эти средства описаны в стандарте POSIX; существуют также другие (здесь не перечисленные) функции, позволяющие просматривать содержимое файлов /etc/passwd и /etc/shadow по записям.

Информационные

Скрытые пароли

Источник

Primary tabs

Forums:

Файл /etc/passwd содержит список пользователей, которые известны системе. В
процессе регистрации пользователя система обращается к этому файлу в поисках идентификатора пользователя и его домашнего каталога.

Стуктура записей в /etc/passwd

Каждая строка файла описывает одного пользователя и 7 полей, разделенных двоеточиями:

В данном поле возможно присутствие:

Группы определяются в файле /etc/group, а поле идентификатора группы в файле /etc/passwd задает стандартный («эффективный») идентификатор на момент регистрации пользователя в системе.

Этот идентификатор не играет особой роли при определении прав доступа; он используется лишь при создании новых файлов и каталогов.

Новые файлы обычно включаются в эффективную группу своего владельца, но если у каталога установлен специальный бит setgid (02000) или файловая система смонтирована с опцией grpid, новые файлы принадлежат группе владельца каталога.
По умолчанию, в ОС Linux для каждого нового пользователя создается новая группа с таким же регистрационным именем и идентификатором.

Структура данного поля может быть произвольной, но команда finger интерпретирует разделенные запятыми элементы данного поля в следующем порядке:

,
— но, в принципе, это может быть любая программа. По умолчанию используется интерпретатор bash.

Пользователи могут менять интерпретатор с помощью команды chsh. Файл /etc/shells содержит список тех интерпретаторов, которые доступны для выбора.

Пример записи в /etc/passwd

Типовые записи файла /etc/passwd имеет следующий вид (приведём две строки):

Источник

Блог о системном администрировании. Статьи о Linux, Windows, СХД NetApp и виртуализации.

В своих прошлых постах блога я уже затрагивал тему пользователей в операционной системе Linux. Например в теме о правах доступа в Linux я затрагивал вопросы принадлежности пользователя к группе, а так же то, что пользователи и группы имеют свои UID и GID. Так же поднималась тема о сбросе пароля пользователя root. Сегодня я бы хотел систематизировать знания о базе локальных пользователей в Linux, о том, как управлять пользователями и о файлах, отвечающих за управление пользователями.

Особенности управления пользователями в Linux

Пример добавления пользователя с помощью шелла:

В соответствии с соглашением, системные пользователи обычно имеют id меньше, чем 100, а пользователь root имеет id, равный 0. Автоматическая нумерация обычных пользователей начинается со значения UID_MIN, установленного в файле /etc/login.defs, это значение обычно установлено в 500 или 1000.

Помимо учетных записей обычных пользователей и учетной записи пользователя root, обычно в системе бывает несколько учетных записей специального назначения для демонов, таких как FTP, SSH, mail, news и т.д. Такие учетные записи часто управляют файлами, но к ним невозможно получить доступ путем обычной регистрации в системе. Поэтому обычно они имеют login shell, определенный как /sbin/nologin или /bin/false, чтобы попытки зарегистрироваться в системе терпели неудачу.

При удалении пользователя, его каталог не удаляется. В результате можно получить интересную ситуацию:

Управление базами данных пользователей и групп в Linux

Основные файлы, содержащие информацию о пользователях и группах, — это четыре файла в каталоге /etc.

/etc/passwd

файл паролей, содержащий основную информацию о пользователях

/etc/shadow

файл теневых шифрованных паролей, содержащий зашифрованные пароли

/etc/group

файл групп, содержащий основную информацию о группах и принадлежащих этим группам пользователях

/etc/gshadow

файл теневых групп, содержащий шифрованные пароли групп

Если все же есть острая необходимость в редактировании указанный файлов, то при помощи команды vipw можно безопасно редактировать файл /etc/passwd, а при помощи команды vigr безопасно редактировать файл /etc/group. Эти команды заблокируют необходимые файлы на то время, пока при помощи редактора vi будут производиться изменения. Если вы вносите изменения в файл /etc/passwd, команда vipw подскажет, что необходимо проверить, не нужно ли обновить и файл /etc/shadow. Подобным образом, если вы обновляете файл /etc/group при помощи команды vigr, вы получите подсказку, что необходимо обновить и файл /etc/gshadow. Если необходимо удалить администраторов группы, необходимо использовать команду vigr, поскольку команда gpasswd позволяет только добавлять администраторов.

Обращаю внимание, что в современных системах, файлы passwd и group не хранят пароли в открытом виде. Это сделано из соображений безопасности. Сами файлы passwd и group должны быть доступными для чтения для всех, а зашифрованные пароли — недоступными для чтения для всех. Поэтому зашифрованные пароли хранятся в теневых файлах, и эти файлы доступны для чтения только пользователю root. Необходимый доступ для изменения аутентификационных данных обеспечивается при помощи suid-программы, которая имеет полномочия пользователя root, но может быть запущена любым пользователем.

Файл /etc/passwd

Файл /etc/passwd содержит одну строку для каждого пользователя системы. Каждая строка содержит семь полей, разделенных двоеточиями (:), описание полей на примере пользователя root:

Файл /etc/group

Файл /etc/group содержит одну строку для каждой группы системы.Каждая строка содержит четыре поля, разделенных двоеточиями (:), описание на примере группы root:

Файл /etc/shadow

Файл /etc/shadow должен быть доступен для чтения только для пользователя root. Пароли могут быть зашифрованы при помощи DES, но чаще для шифрования используется MD5. Описание полей файла:

поле значение описание
имя пользователя test123 имя, используемое для входа в систему (логин)
Зашифрованный пароль $1$.ArJtddq$H399O2dO6aDa99UmDjJ7/1 Пароль в зашифрованном виде
количество дней 14959 количество дней с 1 января 1970, после которых производилось последнее изменение пароля
количество дней 0 количество дней до смены пароля
количество дней 99999 количество дней, после которых пользователь должен сменить пароль
количество дней 7 количество дней, после которых пользователь получает предупреждение о необходимости смены пароля
количество дней пусто количество дней, после истечения срока действия пароля, после которых учетная запись блокируется
количество дней пусто количество дней, с 1 января 1970, до которых действует учетная запись
количество дней пусто зарезервированное поле

Файл /etc/gshadow

Файл /etc/gshadow содержит информацию о группах, состоит из четырех полей для каждой записи:

поле значение описание
Имя группы test123 Имя группы
Пароль ! Поле используется для хранения зашифрованного пароля, если у группы имеется пароль. Если группа не имеет пароля, здесь можно увидеть ‘x’, ‘!’ или ‘!!’.
Администраторы пусто Разделенный запятыми список администраторов группы.
Члены группы пусто Разделенный запятыми список членов группы.

Вот такая ситуация с пользователями в Linux.

Подведу маленький итог:

Пользователи в Linux управляются командами указанными тут. Информация о пользователях и группах храниться в четырех файлах /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow. Данные файлы не редактируются стандартным редактором, только специальными командами управления пользователями и группами (useradd, userdel, usermod, groupadd, groupdel, groupmod, passwd и т.д.) или специальными командами редактирования (vipw, vigr и т.д.). Формат содержимого файлов представляет собой несколько строк, каждая из которых соответствует одному пользователю или группе.

Источник

Читайте также:  indoor на кондиционере что это
Сказочный портал