Данные о пользователях хранятся в /etc/passwd (не путайте с одноименной утилитой passwd
).
Хэшированные пароли пользователя хранятся в /etc/shadow.
whoami
- Покажет логин текущего пользователя
id
- Покажет расширенную информацию о текущем пользователе и его группах
id <user>
- Покажет расширенную информацию об указанном пользователе. Пример - id tux
.
groups
- Покажет список групп, в которых состоит текущий пользователь
groups <user>
- Покажет список групп, в которых состоит указанный пользователь. Пример - groups tux
.
passwd
- Сменить пароль текущего пользователя
passwd <user>
- Сменить пароль указанного пользователя. Пример - passwd tux
.
who
- Покажет список пользователей, залогированных в систему.
Суперпользователь root - специальная учетная запись администратора ОС, который может выполнять абсолютно любые действия. При этом, права суперпользователя могут быть предоставлены любому другому пользователю системы, а сам root может быть переименован. Для предоставления обычным пользователям прав суперпользователя есть различные варианты:
su <user>
(Switch User). Позволяет переключиться в любого пользователя, если вам известен его пароль. Подтягивает только ЧАСТЬ окружения целевого пользователя. Если команда выполняется от пользователя root - пароль не запрашивается. Пример - su tux
.su - <user>
(Switch User со спецсимволом "минус"). Аналогично предыдущей команде, однако подтягивается ВСЕ окружение целевого пользователя. Пример - su - tux
.sudo
(SuperUser DO). Позволяет выполнить любую команду от имени суперпользователя, если пользователь состоит в соответствующей группе (группа sudo в debian-like и группа wheel в redhat-like). Пример - sudo nano /etc/network/interfaces
.Нет абсолютно никакой разницы между командами
su -
иsudo bash
- в обоих случаях у вас откроется консоль от имени root.
adduser <username>
- Создать учетную запись указанного пользователя
addgroup <username>
- Создать указанную группу
deluser <username>
- Удалить учетную запись указанного пользователя
delgroup <username>
- Удалить указанную группу
usermod <options> <username>
- Отредактировать учетную запись пользователя (суть операции - в опциях). Пример - usermod -aG sudo tux
В Linux существует три типа прав (Read, Write, eXecute) для определения возможностей взаимодействия с файлом или директорией трех типов субъектов - владельца (owner), основной группы владельца (owners group) и всех остальных (others). Соответственно для каждого из трех субъектов проставляется три флага - суммарно 9 значений. В таблице приведены описания, что именно разрешают те или иные права.
Файл | Директория | |
---|---|---|
read (4) | Чтение содержимого файла | Чтение содержимого директории |
write (2) | Переименование и изменение содержимого файла | Модификация директории |
execute (1) | Выполнение файла как скрипта или программы | Чтение метаданных |
Права на выполнение (execute) бесполезны без прав на чтение (read)
Пример отображения прав на файл и директорию:
drwxrwxr-x 2 tux tux 4096 May 28 20:20 testdir/
- rw-rw-r-- 1 tux tux 0 May 28 20:20 testfile
Числовые представления набора прав:
No access (0) = 0
Read (4) only = 4
Read (4) + Write (2) = 6
Read (4) + Write (2) + eXecute (1) = 7
Read (4) + eXecute (1) = 5
При создании файла пользователем устанавливаются права 664 (rw-rw-r--)
При создании файла root'ом устанавливаются права 644 (rw-r--r--)
При создании директории пользователем устанавливаются права 775 (rwxrwxr-x)
При создании директории root'ом устанавливаются права 755 (rwxr-xr-x)
chmod <permissions> <filename\dirname>
(CHange MODe) - изменит набор прав для указанного файла или директории. Пример - chmod 600 testfile
chown <user>:<group> <filename\dirname>
(CHange OWNer) - изменит владельца и группу указанного файла или директории. Пример - chown root:adm testfile
loginctl - утилита для мониторинга и управления сессиями пользователей.
loginctl list-sessions
- покажет список активных сессий
loginctl list-users
- выведет список авторизованных пользователей
loginctl session-status <id>
- покажет информацию о сессии
loginctl user-status <id>
- покажет информацию о пользователе
loginctl kill-session <id>
- завершит указанную сессию
loginctl kill-user <id>
- завершит все сессии и процессы указанного пользователя