Управление группами пользователей и правами доступа к файлам в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Linux - это мультипользовательская операционная система. Это означает, что несколько пользователей могут одновременно использовать один и тот же компьютер с Linux, каждый с собственной личной областью и файлами, а также совместно использовать некоторые системные ресурсы. В этом практическом занятии (LabEx) будут представлены основы управления пользователями и разрешений на файлы в Linux - концепции, которые являются важными для системного администрирования и безопасности.

Просмотр информации о текущем пользователе

В Linux каждый пользователь имеет уникальное имя пользователя (username). Давайте начнем с определения, под каким пользователем мы в данный момент вошли в систему.

Откройте терминал и введите следующую команду:

whoami

Команда whoami - это простой инструмент, который отображает имя текущего пользователя.

Вы должны увидеть вывод, похожий на следующий:

labex:project/ $ whoami
labex

Это означает, что вы в данный момент вошли в систему под пользователем "labex".

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

Теперь давайте создадим нового пользователя. В Linux создание новых пользователей требует административных привилегий. Мы будем использовать команду sudo, чтобы получить эти привилегии.

sudo расшифровывается как "Superuser Do" (Выполнить как суперпользователь). Она позволяет обычным пользователям выполнять команды от имени суперпользователя (или корневого пользователя, root).

Прежде чем создать нового пользователя, давайте обсудим концепцию основных групп (primary groups). В Linux каждый пользователь принадлежит к основной группе и может принадлежать к нескольким дополнительным группам. Основная группа обычно используется в качестве группы-владельца для файлов, созданных пользователем.

Когда вы создаете нового пользователя с помощью команды adduser, автоматически создается основная группа для этого пользователя с тем же именем, что и имя пользователя. Это называется схемой Пользовательской Приватной Группы (User Private Group, UPG).

Введите следующую команду, чтобы создать нового пользователя с именем "jack":

sudo adduser jack

Эта команда выполнит следующие действия:

  1. Создаст нового пользователя с именем "jack".
  2. Создаст новую группу с именем "jack" (основную группу).
  3. Добавит пользователя "jack" в группу "jack" в качестве основной группы.
  4. Создаст домашний каталог для jack по пути /home/jack.

Вам будет предложено установить пароль для jack и ввести дополнительную информацию. Вы можете установить простой пароль (например, "password") и нажать Enter, чтобы использовать значения по умолчанию для остальной информации.

После создания пользователя давайте убедимся, что для jack был создан домашний каталог, и проверим основную группу jack:

ls /home
id jack

Команда id покажет идентификатор пользователя (User ID, UID) jack, идентификатор основной группы (Group ID, GID) и любые дополнительные группы.

Исследование групп пользователей

В Linux группы пользователей представляют собой способ организации нескольких пользователей для управления разрешениями. Каждый пользователь имеет основную группу и может принадлежать к нескольким дополнительным группам. Давайте исследуем группы, к которым принадлежит наш текущий пользователь:

id labex

Вы должны увидеть вывод, похожий на следующий:

uid=5000(labex) gid=5000(labex) groups=5000(labex),27(sudo),121(ssl-cert),5002(public)

Это показывает, что:

  • Пользователь labex имеет идентификатор пользователя (User ID, UID) 5000.
  • Основная группа для labex также называется labex и имеет идентификатор группы (Group ID, GID) 5000.
  • labex принадлежит к нескольким дополнительным группам, включая sudo, ssl-cert и public.

Теперь давайте посмотрим все группы в системе:

cat /etc/group | sort

Команда cat отображает содержимое файла, /etc/group - это место, где хранится информация о группах, а | sort сортирует вывод в алфавитном порядке.

Чтобы увидеть только группы, связанные с labex, используйте:

cat /etc/group | grep -E "labex"

grep - это мощный инструмент поиска. Эта команда ищет строки, содержащие "labex", в файле с информацией о группах.

Создание новой группы и добавление пользователя в нее

Давайте создадим новую группу с именем "developers" и добавим нашего нового пользователя "jack" в эту группу:

Сначала создадим новую группу:

sudo groupadd developers

Теперь добавим jack в группу developers:

sudo usermod -aG developers jack

Команда usermod изменяет учетные записи пользователей. Опция -aG добавляет пользователя в дополнительную группу.

Чтобы убедиться, что jack теперь является членом группы developers, используйте:

groups jack

Вы должны увидеть "developers" в списке групп, к которым принадлежит jack.

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

Теперь, когда мы создали пользователя jack, давайте предоставим ему привилегии sudo, добавив его в группу sudo. Но сначала разберемся, почему это важно:

Добавление пользователя в группу sudo позволяет ему выполнять команды с привилегиями суперпользователя или корневого пользователя. Это полезно по нескольким причинам:

  1. Безопасность: Пользователь может выполнять административные задачи без входа в систему как корневой пользователь, что обычно считается риском для безопасности.
  2. Ответственность: Когда пользователи используют sudo, их действия записываются в журналы, что обеспечивает аудит trail административных действий.
  3. Удобство: Не нужно переключаться на учетную запись корневого пользователя для выполнения периодических административных задач.
  4. Гранулярный контроль: Конфигурация sudo может быть настроена так, чтобы разрешить определенным пользователям запускать только определенные команды с повышенными привилегиями.

Для добавления jack в группу sudo используйте следующую команду:

sudo usermod -aG sudo jack

Эта команда использует usermod для изменения учетной записи пользователя. Опция -aG означает "добавить в группу", поэтому она добавляет jack в группу sudo, не удаляя его из других групп.

После добавления jack в группу sudo вы можете проверить его членство в группах с помощью:

sudo groups jack

Вы должны увидеть sudo в списке групп, к которым принадлежит jack.

Добавив jack в группу sudo, мы дали ему возможность выполнять административные задачи в системе. Однако важно помнить, что с большой властью приходит большая ответственность. Пользователи с привилегиями sudo должны быть надежными и понимать последствия своих действий, так как они могут потенциально повлиять на всю систему.

Понимание и управление правами доступа и владельцем файлов

В Linux права доступа и владелец файлов являются важными аспектами безопасности системы. Давайте рассмотрим эти концепции и узнаем, как с ними работать.

  1. Сначала изучим текущие права доступа в каталоге /home:
ls -l /home

Вы увидите вывод, похожий на следующий:

total 8
drwxr-xr-x 2 jack  jack  4096 Jul 30 10:00 jack
drwxr-xr-x 5 labex labex 4096 Jul 30 09:55 labex

Разберем, что это означает:

  • Первый символ указывает на тип файла (d - каталог, - - обычный файл)
  • Следующие 9 символов представляют права доступа для владельца, группы и других пользователей (в таком порядке)
  • r означает право на чтение, w - право на запись, x - право на выполнение
  • Имя пользователя после этих символов - это владелец файла, за которым следует имя группы-владельца
  1. Теперь создадим новый файл и изменим его владельца:
touch /home/labex/testfile
ls -l /home/labex/testfile
sudo chown jack:jack /home/labex/testfile
ls -l /home/labex/testfile

Команда touch создает пустой файл. Изначально файл будет принадлежать пользователю labex. Затем мы используем chown, чтобы изменить владельца на jack как для пользователя, так и для группы.

Зачем изменять владельца? В Linux владельцы файлов имеют специальные привилегии над своими файлами. Изменяя владельца, мы даем jack полный контроль над этим файлом.

  1. Наконец, изменим права доступа к файлу:
sudo chmod 750 /home/labex/testfile
ls -l /home/labex/testfile

Команда chmod изменяет права доступа к файлу. Число 750 - это сокращенный способ задания прав доступа:

  • 7 (владелец): Чтение (4) + Запись (2) + Выполнение (1) = 7
  • 5 (группа): Чтение (4) + Выполнение (1) = 5
  • 0 (другие): Нет прав доступа

Эта установка прав доступа означает:

  • Владелец (jack) может читать, записывать и выполнять файл
  • Члены группы jack могут читать и выполнять файл
  • Другие пользователи не имеют прав доступа к файлу

Зачем устанавливать такие права доступа? Это распространенная установка прав, которая позволяет владельцу иметь полный доступ, группе - ограниченный доступ и ограничивает доступ для всех остальных. Это баланс между удобством использования и безопасностью.

Понимание прав доступа и владельца файлов является важным навыком в Linux. Это позволяет вам контролировать, кто может читать, изменять или выполнять файлы, что является фундаментом безопасности системы и конфиденциальности пользователей. По мере работы с Linux вы будете часто использовать эти команды для управления доступом к файлам и каталогам.

Итог

Поздравляем! Вы завершили лабораторную работу по группам пользователей и правам доступа к файлам в Linux. Вы научились:

  1. Просматривать информацию о пользователях
  2. Создавать новых пользователей и понимать основные группы
  3. Исследовать и изменять группы пользователей
  4. Создавать новые группы и добавлять в них пользователей
  5. Предоставлять пользователям привилегии sudo
  6. Просматривать и понимать права доступа к файлам
  7. Изменять владельца файлов
  8. Изменять права доступа к файлам

Эти навыки являются фундаментальными для управления пользователями и обеспечения безопасности файлов в среде Linux. По мере продолжения изучения Linux вы обнаружите, что эти концепции важны для системного администрирования и безопасности.