Учётная запись — одна строка в файле /etc/passwd. Нет строки — нет пользователя, сколько бы каталогов с его именем ни лежало на диске.
Строку печатает getent passwd имя. Поля разделены двоеточиями:
| Поле | У student |
|---|---|
| имя | student |
| пароль | x — сам пароль лежит в /etc/shadow |
| UID и GID основной группы | 1000, 1000 |
| комментарий | пусто |
| домашний каталог | /home/student |
| оболочка входа | /bin/bash |
Для newhire getent ничего не напечатала: такой строки нет. Владельца файла ядро хранит числом, а имя ls и id берут из этого списка. Для UID 1500 строки нет, и ls -l напечатала число. Так бывает после sudo userdel имя: без ключа -r он удаляет строку, а домашний каталог оставляет на диске.
Оболочка входа — программа, которую система запускает, когда пользователь входит. Обычно это /bin/bash.
Какую программу система запустит, когда deploy войдёт?
deploy:x:1001:1001::/home/deploy:/bin/sh
-
Оболочку входа задаёт последнее поле строки, у deploy там
/bin/sh./bin/bashстоит в строке student. -
xзначит, что пароль хранится в/etc/shadow. Есть ли он, покажетsudo passwd -S deploy. -
Это домашний каталог, шестое поле: вход переходит в него. Запускает он программу из последнего поля.
Последнее поле строки — оболочка входа: у deploy это /bin/sh. Сменить её можно командой sudo usermod -s /bin/bash deploy.
Главное в шаге
-
Учётная запись — строка
/etc/passwd: имя, UID, GID, домашний каталог и оболочка входа. -
Каталог в
/homeучётную запись не создаёт и без неё ничего не значит.