Пользователи и группы
Общая информация
Данные о пользователях хранятся в /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 (при условии, что на машине установлен sudo).
Управление пользователями и группами
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> - завершит все сессии и процессы указанного пользователя