Управление пользователями, группами и разрешениями — одна из основополагающих задач администраторов Ubuntu Server. Настраиваете ли вы многопользовательскую среду или защищаете сервер, важно понимать, как создавать, изменять и администрировать учётные записи пользователей, группы и разрешения. Это руководство подробно рассматривает управление пользователями и разрешениями, с реальными примерами, выводами команд и рекомендациями.
Предыдущая статья:
01. Введение в Ubuntu Server – SysOSX: AI & Cloud
02. Как настроить первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud
03. Освоение командной строки Linux для Ubuntu Server
Введение
Ubuntu Server — мощная платформа для размещения приложений, управления службами и организации многопользовательских сред. Освоив управление пользователями и разрешениями, вы сможете защитить сервер, эффективно контролировать доступ и предотвращать несанкционированные действия. Это руководство охватывает всё — от базового создания учётных записей до расширенных настроек разрешений, с подробными примерами.
Создание учётных записей пользователей и управление ими
Создание пользователя
Чтобы создать учётную запись пользователя в Ubuntu Server, используйте команду adduser. Эта команда интерактивна и запрашивает дополнительную информацию о пользователе.
Пример команды:
sudo adduser john
Пример вывода:
Adding user `john' ...
Adding new group `john' (1001) ...
Adding new user `john' (1001) with group `john' ...
Creating home directory `/home/john' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for john
Enter the new value, or press ENTER for the default
Full Name []: John Doe
Room Number []: 101
Work Phone []: 555-1234
Home Phone []: 555-5678
Other []:
Is the information correct? [Y/n] Y
Это создаёт пользователя с именем john с домашним каталогом по адресу /home/john и присваивает ему уникальный идентификатор пользователя (UID).
Изменение пользователя
Команда usermod позволяет изменять учётные записи пользователей. Например, можно изменить домашний каталог пользователя, оболочку или членство в группах.
Изменение домашнего каталога:
sudo usermod -d /home/new_john john
sudo mv /home/john /home/new_john
Блокировка или разблокировка учётной записи пользователя:
- Заблокируйте учётную запись:
sudo passwd -l john - Разблокируйте учётную запись:
sudo passwd -u john
Пример вывода (блокировка учётной записи):
passwd: password expiry information changed.
Удаление пользователя
Чтобы удалить пользователя, используйте команду deluser. Можно также удалить его домашний каталог и связанные файлы.
Пример команды:
sudo deluser --remove-home john
Пример вывода:
Looking for files to backup/remove ...
Removing files ...
Removing user `john' ...
Warning: group `john' has no more members.
Done.
Управление группами
Группы — это способ организовать пользователей и назначать коллективные разрешения. Каждый пользователь может принадлежать к нескольким группам.
Создание групп и управление ими
Чтобы создать группу, используйте команду addgroup.
Пример команды:
sudo addgroup developers
Пример вывода:
Adding group `developers' (GID 1002) ...
Done.
Чтобы удалить группу:
sudo delgroup developers
Добавление пользователей в группы
Чтобы добавить пользователя в группу, используйте команду usermod с параметром -aG.
Пример команды:
sudo usermod -aG developers john
Проверка членства в группах:
groups john
Пример вывода:
john : john developers
Это показывает, что john принадлежит к группам john и developers.
Разрешения для файлов и каталогов
Разрешения файлов Linux крайне важны для контроля доступа к файлам и каталогам. Разрешения определяются для трёх категорий: Владелец, Группа, и Другие.
Типы разрешений
У каждой категории есть три типа разрешений:
- Чтение (r): позволяет просматривать содержимое файлов или выводить список содержимого каталогов.
- Запись (w): позволяет изменять содержимое файлов или создавать/удалять файлы в каталоге.
- Выполнение (x): позволяет запускать исполняемые файлы или получать доступ к каталогам.
Пример:
Используйте ls -l чтобы просмотреть разрешения файлов:
ls -l /home/john
Пример вывода:
-rw-r--r-- 1 john john 4096 Mar 21 14:00 file.txt
rw-: владелец (john) имеет разрешения на чтение и запись.r--: группа (john) имеет разрешения только на чтение.r--: другие имеют разрешения только на чтение.
Изменение разрешений
Используйте команду chmod, чтобы изменить разрешения.
Примеры команд:
- Предоставьте разрешение на выполнение владельцу:
chmod u+x file.txt - Удалите разрешение на запись для других: chmod o-w file.txt
Использование числовых значений:
Разрешения также можно задавать с помощью числовых значений:
chmod 755 file.txt: полные разрешения для владельца, чтение/выполнение для группы и других.
Числовые разрешения (755, 777, 744)
Разрешения Linux можно представить численно, где каждая цифра соответствует определённому уровню разрешений:
Структура числовых разрешений:
Каждое числовое разрешение состоит из трёх цифр:
- Первая цифра: разрешения для владельца.
- Вторая цифра: разрешения для группы.
- Третья цифра: разрешения для других.
Каждая цифра вычисляется на основе следующих значений:
4: чтение (r)2: запись (w)1: выполнение (x)
Сумма этих значений определяет уровень разрешений для каждой категории.
Распространённые числовые разрешения:
- 777: полные разрешения для всех (чтение, запись, выполнение).
- Владелец:
rwx - Группа:
rwx - Другие:
rwx - Пример использования: редко используется по соображениям безопасности, но может применяться к временным каталогам, таким как
/tmp.
- Владелец:
- 755: полные разрешения для владельца, разрешения на чтение и выполнение для группы и других.
- Владелец:
rwx - Группа:
r-x - Другие:
r-x - Пример использования: часто используется для исполняемых файлов или каталогов.
- Владелец:
- 744: полные разрешения для владельца, только чтение для группы и других.
- Владелец:
rwx - Группа:
r-- - Другие:
r-- - Пример использования: часто используется для личных файлов.
- Владелец:
Пример:
Чтобы установить разрешения для скрипта на 755:
chmod 755 script.sh
Пример вывода:
-rwxr-xr-x 1 john john 4096 Mar 21 14:00 script.sh
Управление владельцами
Измените владельца с помощью команды chown.
Пример команды:
sudo chown john:developers file.txt
Это устанавливает владельца john и группу developers.
Пример вывода:
-rw-r--r-- 1 john developers 4096 Mar 21 14:00 file.txt
Использование Sudo для повышения привилегий
Команда sudo позволяет пользователям выполнять команды с повышенными привилегиями. Чтобы предоставить пользователю доступ sudo, добавьте его в группу sudo.
Пример команды:
sudo usermod -aG sudo john
Проверка доступа Sudo:
sudo -l -U john
Пример вывода:
User john may run the following commands on this host:
(ALL : ALL) ALL
Рекомендации по защите учётных записей пользователей
- Обеспечьте соблюдение строгих парольных политик:
Используйтеpasswdчтобы установить срок действия пароля:sudo passwd -e john - Ограничьте доступ Sudo:
Предоставляйте привилегииsudoтолько доверенным пользователям. - Отключите вход под root:
Отредактируйте файл конфигурации SSH:
sudo nano /etc/ssh/sshd_config
Установите:
PermitRootLogin no
- Используйте SSH-ключи для аутентификации:
Замените вход по паролю на SSH-ключи. - Отслеживайте активность пользователей:
Используйтеlastилиwhoчтобы отслеживать активность входа:
last
Объяснение вывода
uadmin pts/1 192.168.255.48 Fri Mar 21 13:55 still logged in
uadmin pts/0 192.168.255.48 Fri Mar 21 13:54 still logged in
uadmin pts/1 192.168.255.48 Fri Mar 21 01:49 - 08:19 (06:29)
uadmin pts/0 192.168.255.48 Fri Mar 21 00:53 - 08:19 (07:26)
reboot system boot 6.8.0-1021-azure Fri Mar 21 00:22 still running
Построчный анализ
Вход пользователя: uadmin pts/1 192.168.255.48 Fri Mar 21 13:55 still logged in
uadmin: имя пользователя, выполнившего вход.pts/1: сеанс псевдотерминала, использованный для входа. Псевдотерминалы (pts) — это виртуальные терминалы, обычно создаваемые при входе пользователей через SSH.192.168.255.48: IP-адрес удалённой машины, с которой подключился пользователь.Fri Mar 21 13:55: дата и время входа пользователя.still logged in: указывает, что пользователь в данный момент вошёл в систему и активен.
| Столбец | Значение |
|---|---|
| Имя пользователя | Имя пользователя или события (uadmin, reboot). |
| Терминал | Сеанс псевдотерминала (pts/X) или системное событие (system boot). |
| Удалённый хост/IP | IP-адрес или имя хоста удалённой машины, инициирующей подключение. |
| Дата/время входа | Дата и время начала входа или события. |
| Время выхода | Дата и время завершения сеанса (если применимо). |
| Длительность | Общее время длительности сеанса (если применимо). |
| Статус сеанса | Текущий статус сеанса (still logged in, still running). |
Дополнительные команды для анализа
- Показать пользователей, вошедших в систему:
who - Пример вывода:
uadmin pts/1 2023-03-21 13:55 (192.168.255.48)
uadmin pts/0 2023-03-21 13:54 (192.168.255.48)
- Проверить время работы системы:
uptime - Пример вывода:
14:15:32 up 13:53, 2 users, load average: 0.10, 0.12, 0.15
Заключение
Управление пользователями, группами и разрешениями — фундаментальный навык администраторов Ubuntu Server. Освоив эти задачи, вы сможете защитить сервер, предотвратить несанкционированный доступ и повысить эффективность работы.
Следующее руководство: Основы сетей для Ubuntu Server
В следующем руководстве мы рассмотрим основы сетей для Ubuntu Server, включая настройку сетевых интерфейсов, установку статических IP-адресов, устранение неполадок сетевого подключения и использование netplan Ubuntu для сетевых задач. Следите за новостями, чтобы получить практические рекомендации по оптимизации сетевой конфигурации сервера.
7 thoughts on “04. Managing Users and Permissions on Ubuntu Server: A Comprehensive Guide”