Пользователи в Linux

Содержание
Список всех польователей Linux
Создать пользователя
Удалить пользователя
Сменить пароль пользователя
Список групп
Список групп пользователя
Добавить пользователя в группу
useradd: добавление пользователей
sudo
Похожие статьи

Список всех пользователей Linux

Список пользователей лежит в файле passwd в /etc/

Чтобы его открыть выполните

cat /etc/passwd

Создать пользователя

Чтобы создать пользователя user1 нужно ввести команду

adduser user1

Если Вы получили сообщение bash: adduser: command not found прочитайте решение здесь

Удалить пользователя

Если пользователь вам надоест его можно удалить командой

deluser user1

Сменить пароль пользователя

Если вы забудете пароль пользователя, то из-под root его можно будет поменять командой

passwd user1

Список групп

Все существующие пользовательские группы в системе

groups

andrei adm cdrom sudo dip plugdev lpadmin lxd sambashare

Узнать список всех групп

cat /etc/group

root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog,andrei tty:x:5: disk:x:6: lp:x:7: mail:x:8: … gdm:x:133: lxd:x:134:andrei andrei:x:1000: sambashare:x:135:andrei docker:x:136:

Чтобы получить не весь список, а только обычные пользовательские группы

cat /etc/group | grep 1[0-9][0-9][0-9]

andrei:x:1000:

Про grep можно прочитать здесь

Список групп пользователя

Узнать в каких группах состоит пользователь user1

groups user1

Добавить пользователя в группу

Добавить пользователя user1 в группу group1

usermod -G group1 user1

Добавить пользователя sinij и в группу group1 и в группу bks_fans

usermod -G group1,bks_fans sinij

Изменить основную группу пользователя user1 на group2 (по умолчанию обычно группа называется так же как пользователь)

usermod -g group2 user1

Поменять группу к которой принадлежит директория /home/movies на users

chgrp -R users /home/movies

useradd

Синтаксис обычный

useradd [options] username

Команда useradd вносит изменения в следующие файлы из директории /etc passwd shadow group gshadow

Сохраним содержимое этим файлов перед добавлением нового пользователя

cat /etc/passwd > passwd0.txt cat /etc/shadow > shadow0.txt cat /etc/group > group0.txt cat /etc/gshadow > gshadow0.txt

Добавим пользователя user0

useradd user0

Сохранима содержимое обновлённых файлов

cat /etc/passwd > passwd1.txt cat /etc/shadow > shadow1.txt cat /etc/group > group1.txt cat /etc/gshadow > gshadow1.txt

Изучим внесённые изменения с помощью команды diff

diff passwd0.txt passwd1.txt

26a27 > user0:x:1001:1001::/home/user0:/bin/sh

diff shadow0.txt shadow1.txt

26a27 > user0:!:19559:0:99999:7:::

! говорит о том, что у пользователя не задан пароль.

diff group0.txt group1.txt

47a48 > user0:x:1001:

diff gshadow0.txt gshadow1.txt

47a48 > user0:!::

Установим пароль для пользователя user0

passwd user0

New password: Retype new password: passwd: password updated successfully

cat /etc/shadow > shadow2.txt diff shadow1.txt shadow2.txt

27c27 < user0:!:19559:0:99999:7::: --- > user0:$y$j9T$9wfFq/VdOykqfnPnHOeYC/$G6b7JmDA7TGpvHbEYaEayIvgRHhDQTCaAdHD.wdu2m1:19559:0:99999:7:::

! сменился на хэш пароля. Других изменений в этих файлах нет.

Разберём подробнее запись в /etc/passwd

user0:x:1001:1001::/home/user0:/bin/sh

-d: нестандартная домашняя директория

С помощью опции -d можно явно указать домашнюю директорию

useradd -d /var/qa tester
cat /etc/passwd | grep tester

tester:x:1002:1002::/var/qa:/bin/sh

-u: нестандартный UID

С помощью опции -u можно явно задать UID

useradd -u 1111 cormac
cat /etc/passwd | grep cormac

cormac:x:1111:1111::/home/cormac:/bin/sh

Хочу обратить внимание, на то, что установка UID вручную также двигает счётчик для автоматического создания пользователей.

Следующий пользователь будет создан с UID 1112.

-g: нестандартный GID

С помощью опции -u можно явно задать GID

Нужно выбирать уже существующую группу, иначе будет ошибка.

useradd -g 1002 mccarthy
cat /etc/passwd | grep mccarthy

mccarthy:x:1112:1002::/home/mccarthy:/bin/sh

Если бы пользователь был создан без опции -b, то и UID и GID были бы 1112

Проверить, что mccarthy принадлежит группе 1002 (tester) можно выполнив команду id

id -gn mccarthy

tester

-s: нестандартный shell

С помощью опции -u можно явно задать shell

useradd -s /bin/bash kevin
cat /etc/passwd | grep kevin

kevin:x:1114:1114::/home/kevin:/bin/bash

Если бы пользователь был создан без опции -b, то и UID и GID были бы 1112

-d, --home HOME_DIR The new user will be created using HOME_DIR as the value for the user's login directory. The default is to append the LOGIN name to BASE_DIR and use that as the login directory name. The directory HOME_DIR does not have to exist but will not be created if it is missing. -m, --create-home Create the user's home directory if it does not exist. The files and directories contained in the skeleton directory (which can be defined with the -k option) will be copied to the home directory. useradd will create the home directory unless CREATE_HOME in /etc/login.defs is set to no. -r, --system Create a system account. System users will be created with no aging information in /etc/shadow, and their numeric identifiers are choosen in the SYS_UID_MIN-SYS_UID_MAX range, defined in /etc/login.defs, instead of UID_MIN-UID_MAX (and their GID counterparts for the creation of groups). Note that useradd will not create a home directory for such an user, regardless of the default setting in /etc/login.defs (CREATE_HOME). You have to specify the -m options if you want a home directory for a system account to be created.

sudo

Похожие статьи
Linux
FAQ
Debian
Ubuntu
CentOS
Rocky
Bash
Настройка сети
Файлы, директории, ссылки…
Изучить свободное место на диске
Объединить .pdf файлы
diff: сравнение файлов
find: поиск файлов
wget: скачивание файлов
kill: завершить процесс
curl
make
signal: системные сигналы
env: переменные окружения
localectl: язык
systemctl: Список активных сервисов
Firewall
SCP: обмен файлами;
SSH: удалённый доступ
cron: задания по расписанию
sudo
Мониторинг ресурсов
C
C++