Linux. Пользователи и группы
06.12.2019
Теги: Linux • Команда • Пользователь • ПраваДоступа
Установка прав доступа в Linux тесно связана с понятиями пользователь и файл. Пользователю — владельцу файла — выдаются определенные полномочия для работы с ним, а именно — чтение, запись и выполнение. Пользователи могут объединяться в группы, чтобы уже группам выдавать нужные полномочия на доступ к тем или иным файлам.
Управление пользователями
Добавление пользователя
Добавление нового пользователя:
$ sudo useradd -m developer
Будет создана домашняя директория developer
внутри директории /home
:
$ cd /home/developer $ ls -la итого 32 drwxr-xr-x 2 developer developer 4096 дек 6 14:58 . drwxr-xr-x 4 root root 4096 дек 6 14:58 .. -rw-r--r-- 1 developer developer 220 апр 4 2018 .bash_logout -rw-r--r-- 1 developer developer 3771 апр 4 2018 .bashrc -rw-r--r-- 1 developer developer 8980 апр 16 2018 examples.desktop -rw-r--r-- 1 developer developer 807 апр 4 2018 .profile
Если при создании пользователя не указываются дополнительные ключи, то берутся настройки по умолчанию. Эти настройки можно посмотреть так:
$ useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no
Справка по команде useradd
:
$ useradd --help Использование: useradd [параметры] ПОЛЬЗОВАТЕЛЬ useradd -D useradd -D [параметры] Параметры: -b, --base-dir БАЗ_КАТАЛОГ базовый каталог для домашнего каталога новой учётной записи -c, --comment КОММЕНТАРИЙ поле GECOS новой учётной записи -d, --home-dir ДОМ_КАТАЛОГ домашний каталог новой учётной записи -D, --defaults показать или изменить настройки по умолчанию для useradd -e, --expiredate ДАТА_УСТ дата устаревания новой учётной записи -f, --inactive НЕАКТИВНОСТЬ период неактивности пароля новой учётной записи -g, --gid ГРУППА имя или ID первичной группы новой учётной записи -G, --groups ГРУППЫ список дополнительных групп новой учётной записи -h, --help показать данное сообщение и закончить работу -k, --skel КАБ_ШАБ использовать альтернативный каталог с шаблонами -K, --key КЛЮЧ=ЗНАЧЕНИЕ заменить значение по умолчанию из /etc/login.defs -l, --no-log-init не добавлять пользователя в базы данных lastlog и faillog -m, --create-home создать домашний каталог пользователя -M, --no-create-home не создавать домашний каталог пользователя -N, --no-user-group не создавать группу с тем же именем что и у пользователя -o, --non-unique разрешить создание пользователей с повторяющимися (не уникальными) UID -p, --password ПАРОЛЬ зашифрованный пароль новой учётной записи -r, --system создавать системную группу -R, --root КАТ_CHROOT каталог, в который выполняется chroot -s, --shell ОБОЛОЧКА регистрационная оболочка новой учётной записи -u, --uid UID пользовательский ID новой учётной записи -U, --user-group создать группу с тем же именем что и у пользователя -Z, --selinux-user SEUSER использовать указанного SEUSER для пользовательского сопоставления SELinux
Но учетная запись будет заблокирована, пока для нее не будет установлен пароль:
$ sudo passwd developer Введите новый пароль UNIX: Повторите ввод нового пароля UNIX: passwd: пароль успешно обновлён
Изменение пользователя
Изменить учетную запись:
$ sudo usermod -c "Разработчик сайта" developer
Справка по команде usermod
:
$ usermod --help Использование: usermod [параметры] ПОЛЬЗОВАТЕЛЬ Параметры: -c, --comment КОММЕНТАРИЙ новое значение поля GECOS -d, --home ДОМ_КАТАЛОГ новый домашний каталог учётной записи -e, --expiredate ДАТА_УСТ установить дату окончания действия учётной записи в ДАТА_УСТ -f, --inactive НЕАКТИВНОСТЬ установить период неактивности пароля после устаревания учётной записи равным НЕАКТИВНОСТЬ -g, --gid ГРУППА принудительно назначить первичную ГРУППУ -G, --groups ГРУППЫ список дополнительных ГРУПП -a, --append добавить пользователя в дополнительные ГРУППЫ, указанные в параметре -G не удаляя пользователя из других групп -h, --help показать данное сообщение и закончить работу -l, --login НОВОЕ_ИМЯ новое значение имени учётной записи -L, --lock заблокировать учётную запись -m, --move-home переместить содержимое домашнего каталога в новое место (использовать только вместе с -d) -o, --non-unique разрешить создание учётной записи с уже имеющимся (не уникальным) UID -p, --password ПАРОЛЬ задать новый шифрованный пароль для учётной записи -R, --root КАТ_CHROOT каталог, в который выполняется chroot -s, --shell ОБОЛОЧКА новая регистрационная оболочка для учётной записи -u, --uid UID новый UID для учётной записи -U, --unlock разблокировать учётную запись -v, --add-subuids ПЕРВ-ПОСЛ добавить диапазон подчинённых uid -V, --del-subuids ПЕРВ-ПОСЛ удалить диапазон подчинённых uid -w, --add-subgids ПЕРВ-ПОСЛ добавить диапазон подчинённых gid -W, --del-subgids ПЕРВ-ПОСЛ удалить диапазон подчинённых gid -Z, --selinux-user SEUSER новое пользовательское сопоставление SELinux для учётной записи
Удаление пользователя
Удаление пользователя:
$ sudo userdel -r developer
Справка по команде userdel
:
$ userdel --help Использование: userdel [параметры] ПОЛЬЗОВАТЕЛЬ Параметры: -f, --force удалять файлы, даже если они не принадлежат пользователю -h, --help показать данное сообщение и закончить работу -r, --remove удалить домашний каталог и почтовый ящик -R, --root КАТ_CHROOT каталог, в который выполняется chroot --extrausers Use the extra users database -Z, --selinux-user удалить все пользовательские сопоставления SELinux для пользователя
Информация о пользователе
С помощью команд id
и w
:
$ id evgeniy uid=1000(evgeniy) gid=1000(evgeniy) группы=1000(evgeniy),4(adm),24(cdrom),27(sudo),30(dip),33(www-data)
$ w evgeniy 15:28:42 up 41 min, 1 user, load average: 0,02, 0,02, 0,01 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT evgeniy :0 :0 14:47 ?xdm? 36.09s 0.01s /usr/lib/gdm3/g
Управление группами
Создание группы
Создание новой группы:
$ sudo groupadd developers
Справка по команде groupadd
:
$ groupadd --help Использование: groupadd [параметры] ГРУППА Параметры: -f, --force закончить работу без ошибки, если группа существует и отменить -g, если GID уже используется -g, --gid GID для новой группы использовать указанный GID -h, --help показать данное сообщение и закончить работу -K, --key КЛЮЧ=ЗНАЧЕНИЕ заменить значение по умолчанию из /etc/login.defs -o, --non-unique разрешить создание групп с повторяющимся (не уникальным) GID -p, --password ПАРОЛЬ использовать этот шифрованный пароль для новой группы -r, --system создавать системную группу -R, --root КАТ_CHROOT каталог, в который выполняется chroot --extrausers Use the extra users database
Изменение группы
Изменение имени группы:
$ sudo groupmod -n new-group-name old-group-name
Справка по команде groupmod
:
$ groupmod --help Использование: groupmod [параметры] ГРУППА Параметры: -g, --gid GID изменить ID группы на GID -h, --help показать данное сообщение и закончить работу -n, --new-name НОВАЯ_ГРУППА изменить имя на НОВУЮ_ГРУППУ -o, --non-unique разрешить повторяющиеся (не уникальные) GID -p, --password ПАРОЛЬ изменить пароль на заданный (шифрованный) ПАРОЛЬ -R, --root КАТ_CHROOT каталог, в который выполняется chroot
Удаление группы
Удаление группы:
$ sudo groupdel developers
Группы пользователя
Информация о группах пользователя:
$ groups evgeniy evgeniy : evgeniy adm cdrom sudo dip www-data
Для добавления пользователя в группу или удаления пользователя из группы можно использовать утилиту gpasswd
:
$ gpasswd --help Использование: gpasswd [параметр] ГРУППА Параметры: -a, --add ПОЛЬЗ добавить ПОЛЬЗОВАТЕЛЯ в ГРУППУ -d, --delete ПОЛЬЗ удалить ПОЛЬЗОВАТЕЛЯ из ГРУППЫ -h, --help показать данное сообщение и закончить работу -Q, --root КАТ_CHROOT каталог, который выполняется chroot -r, --remove-password удалить пароль ГРУППЫ -R, --restrict ограничить доступ в ГРУППУ её членами -M, --members ПОЛЬЗ,… задать список членов ГРУППЫ -A, --administrators АДМИН,… задать список администраторов ГРУППЫ За исключением параметров -A и -M, остальные не могут указываться одновременно.
Файлы passwd и group
Список всех пользователей и список всех групп можно посмотреть в файлах /etc/passwd
и /etc/group
.
Файл /etc/passwd
В файле /etc/passwd
хранится вся информация о пользователях, кроме пароля. Одна строка из этого файла соответствует описанию одного пользователя:
$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync .......... evgeniy:x:1000:1000:Evgeniy:/home/evgeniy:/bin/bash mysql:x:122:127:MySQL Server:/nonexistent:/bin/false
Строка состоит из нескольких полей, каждое из которых отделено от другого двоеточием:
- Имя пользователя для входа в систему.
- Необязательный зашифрованный пароль.
- Числовой идентификатор пользователя (UID).
- Числовой идентификатор группы (GID).
- Поле комментария.
- Домашний каталог пользователя.
- Оболочка пользователя.
Второе и последнее поля необязательные и могут не иметь значения.
Файл /etc/group
В файле /etc/group
, как очевидно из названия, хранится информация о группах. Одна строка из этого файла соответствует описанию одной группы:
$ cat /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog,evgeniy .......... evgeniy:x:1000: mysql:x:127:
Строка состоит из нескольких полей, каждое из которых отделено от другого двоеточием:
- Название группы.
- Необязательный зашифрованный пароль.
- Числовой идентификатор группы (GID).
- Список пользователей, находящихся в группе.
В этом файле второе и четвертое поля могут быть пустыми.
Файл /etc/shadow
Файл /etc/shadow
хранит в себе зашифрованные пароли пользователей, поэтому права, установленные на этот файл, не дают считать его простому пользователю.
Поиск: Linux • Команда • Пользователь • Права доступа • Группа • useradd • usermod • userdel • groupadd • groupmod • groupdel