User data file in linux

Структура хранения данных о пользователе в Linux. Файл /etc/passwd

Как упоминалось ранее, (в статье про то, как можно посмотреть список пользователей на компьютере под Linux), есть файл /etc/passwd , в котором хранятся основные данные всех пользователей Linux. В этой статье подробно рассмотрим, что это за данные и в каком формате они записываются и хранятся. Файл /etc/passwd — обычный текстовый файл и его можно открыть, посмотреть и изменить, если есть права доступа к нему. Обычно эти права есть у пользователя root .

Содержимое файла /etc/passwd

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

Структура записей о пользователе Linux в файле /etc/passwd

Итак, разберём поля, относящиеся к пользователю в этом файле. Как было указано их ровно семь:

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

Поле login

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

Поле password

Поле password предназначено для хранения пароля пользователя. Но хранить его в явном виде, да ещё и все пароли в одном месте, не безопасно. Поэтому в этом поле обычно стоит символ x , вместо паролей хранятся их хэши, и не в этом поле, а в специальном файле /etc/shadow . Таким образом, даже если кому-то удастся получить файл /etc/passwd , то паролей пользователей в нём нет и требуется ещё файл /etc/shadow , в котором хранятся хэши паролей (зашифрованные записи самих паролей). То есть пароль пользователя в явном виде не знает даже администратор. Можно конечно порадоваться, но админ всегда может поменять ваш пароль и войти с этим новым паролем на компьютер. Так что root — всё равно имеет доступ ко всему на компьютере. (Другое дело, что при смене пароля придётся объяснять пользователю, почему он вдруг не может войти под своим логином, но это уже другая история.) 😉

Читайте также:  Ограничение количества файлов linux

Поле UID

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

Поле GID

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

Поле GECOS

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

Поле home

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

Для информации:
В → этой статье предложено несколько способов того, как получить путь к домашней директории пользователя.

Поле shell

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

Читайте также:  Wireshark linux no gui

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! 😉

Источник

Where and How are Passwords Stored on Linux

“A username and password for a single account are the primary requirements for accessing a Linux system. In order to verify a user during a system login attempt, all user accounts passwords are saved in a file or database. Finding this file on a user’s machine is beyond the knowledge and abilities of every user. Linux checks the password given by the user against an entry in one or more files located in the directory named “/etc.” when the user logs in with a username and password.

All the crucial data required for user login is stored in the /etc/passwd files. The user’s account information is kept in the /etc/passwd file, to put it another way. The entire list of users on your Linux system is contained in this plain text file. It contains data about the user name, password, group ID, user id, shell, and home directory. Only superuser or root user accounts should have restricted write access permissions.”

This article will show you where and how to save the passwords for system user accounts on Linux distributions.

Examining the /etc/passwd File

In order to run administrative commands, you must have root access. The details of your system’s user account are in the /etc/passwd file. The colon “:” symbol separates each stored field. The following command will display each entry in the /etc/passwd file:

The command mentioned above will list every user on your Linux system, and hence terminal’s screen will show the following format:

The information about the currently used account is shown in the highlighted portion below.

Читайте также:  Active directory with linux dhcp

There are several fields of data divided by colons (:).

Linux: Username is shown in field one. The username field can only have between 1 and 32 characters. Linux is the username in the sample above.

Password (x): The “x” character denotes the encrypted password, as can be seen in the aforementioned example.

UID (1000): Each user must have their own unique user ID. The user ID in the aforementioned screenshot is 1000.

GID (1000): The group ID is represented by the following field. The GID is kept in the file /etc/group. The example indicates that the user is a member of group 1000.

Details (linux): Comments should go in the field below. You can enter further details about the identified person in this box, such as the individual’s complete name, contact information, etc. The user does not offer a phone number in the case above, though.

Home directory (/home/linux): The location of the user’s current home directory is displayed in this field. It will show “/” if the requested directory does not exist.

/bin/bash shell: /bin/bash is the default absolute path for a shell or command.

Searching User in the /etc/passwd File

A specific user can be found easily by using the grep command. For instance, if we wish to search for the username “linux” in the /etc/passwd file, we may quickly do it by using the following command, which will save us time:

In this regard, we can also use the following command:

View the /etc/passwd File’s Permissions

As we stated above, the /etc/passwd file must have the owner be superuser or root, and all users other than root should have read rights.

To check the read rights on the file, type the following:

Examine the File /etc/shadow

Your whole encrypted password collection is stored in the root-only /etc/shadow file. Every password is viewable in encrypted form. Let’s execute the next command to show the content:

Conclusion

The aforementioned article demonstrates that the Linux operating system keeps all user account details and passwords in the /etc/passwd file. Additionally, we have seen every encrypted password kept in the /etc/shadow file. To learn more about the user’s group, you can also look through the /etc/group file.

About the author

Karim Buzdar

Karim Buzdar holds a degree in telecommunication engineering and holds several sysadmin certifications. As an IT engineer and technical author, he writes for various web sites. He blogs at LinuxWays.

Источник

Оцените статью
Adblock
detector