Пользователи и группы

Общая информация

Данные о пользователях хранятся в /etc/passwd (не путайте с одноименной утилитой passwd).
Хэшированные пароли пользователя хранятся в /etc/shadow.

whoami - Покажет логин текущего пользователя
id - Покажет расширенную информацию о текущем пользователе и его группах
id <user> - Покажет расширенную информацию об указанном пользователе. Пример - id tux.
groups - Покажет список групп, в которых состоит текущий пользователь
groups <user> - Покажет список групп, в которых состоит указанный пользователь. Пример - groups tux.
passwd - Сменить пароль текущего пользователя
passwd <user> - Сменить пароль указанного пользователя. Пример - passwd tux.
who - Покажет список пользователей, залогированных в систему.

Суперпользователь

Суперпользователь root - специальная учетная запись администратора ОС, который может выполнять абсолютно любые действия. При этом, права суперпользователя могут быть предоставлены любому другому пользователю системы, а сам root может быть переименован. Для предоставления обычным пользователям прав суперпользователя есть различные варианты:

  1. Команда su <user> (Switch User). Позволяет переключиться в любого пользователя, если вам известен его пароль. Подтягивает только ЧАСТЬ окружения целевого пользователя. Если команда выполняется от пользователя root - пароль не запрашивается. Пример - su tux.
  2. Команда su - <user> (Switch User со спецсимволом "минус"). Аналогично предыдущей команде, однако подтягивается ВСЕ окружение целевого пользователя. Пример - su - tux.
  3. Команда 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