Изменение владельца директории с помощью chown в Linux

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

Введение

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

Вы начнете с подготовки необходимой среды, которая включает создание новой группы под названием research и добавление вашего пользователя в эту группу. После настройки вы создадите директорию и изучите сведения о ее первоначальных владельцах. Основная часть работы посвящена использованию команды chown для переназначения директории группе research. В завершение вы воспользуетесь командой ls -l, чтобы убедиться в успешном обновлении владельца и подтвердить внесенные изменения.

Подготовка среды и проверка членства в группе

На этом этапе вы подготовите необходимую группу пользователей для последующих упражнений. В Linux владение файлом определяется пользователем и группой, что обеспечивает гибкое управление правами доступа. Мы создадим новую группу research и добавим в нее нашего текущего пользователя labex. Это позволит нам в дальнейшем закрепить владение файлами и директориями за этой конкретной группой.

Для начала создадим группу research. Мы воспользуемся командой groupadd. Поскольку создание группы изменяет конфигурационные файлы системы, нам потребуется sudo для выполнения команды с правами администратора.

Выполните следующую команду в терминале:

sudo groupadd research

При успешном выполнении эта команда не выводит никаких сообщений. Чтобы убедиться, что группа создана, мы можем найти ее в файле /etc/group. В этом файле хранится информация обо всех группах в системе. Воспользуемся командой grep, чтобы найти строку, соответствующую нашей новой группе.

grep 'research' /etc/group

Вы должны увидеть результат, похожий на этот (идентификатор группы — число — может отличаться):

research:x:5003:

Теперь, когда группа существует, следующим шагом будет добавление в нее пользователя labex. Мы используем команду usermod (сокращение от "user modify"). Флаги -aG очень важны: -a означает добавление (append), а -G указывает дополнительную группу или группы. Без флага -a вы бы удалили пользователя из всех остальных групп.

Запустите эту команду, чтобы добавить labex в группу research:

sudo usermod -aG research labex

Опять же, при успехе команда ничего не выведет. Давайте проверим изменения, еще раз заглянув в файл /etc/group.

grep 'research' /etc/group

Теперь в конце строки должно появиться имя labex, что подтверждает членство пользователя в группе.

research:x:5003:labex

После создания группы research и включения в нее пользователя labex наша среда полностью готова к следующим шагам по управлению владельцами файлов и директорий.

Создание директории и проверка ее начального владельца

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

Ваша текущая рабочая директория — /home/labex/project. Мы создадим здесь новую папку под названием RandD. Для этого используется команда mkdir (сокращение от "make directory").

Выполните следующую команду для создания директории:

mkdir RandD

Теперь, когда директория RandD создана, давайте изучим ее свойства, в частности, кто является ее владельцем. Мы можем сделать это с помощью команды ls -l. Флаг -l указывает ls использовать формат "длинного списка", который предоставляет подробную информацию о файлах и директориях.

Запустите эту команду в терминале:

ls -l

Вы увидите список файлов и директорий в текущем расположении. Найдите строку, соответствующую RandD. Вывод должен выглядеть примерно так:

drwxrwxr-x 2 labex labex 6 Jun 26 10:28 RandD

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

На следующем этапе вы узнаете, как изменить эти настройки владения по умолчанию.

Изменение владельца директории с помощью команды chown

На этом этапе вы воспользуетесь командой chown для смены владельца директории RandD. Это стандартная задача для системных администраторов при управлении общими проектными папками. Наша цель — оставить пользователем-владельцем labex, но сменить группу-владельца на research, которую мы создали на первом этапе. Это позволит любому участнику группы research совместно работать в этой директории в соответствии с установленными для группы правами доступа.

Команда для смены владельца — chown (сокращение от "change owner"). Общий синтаксис выглядит так: chown [пользователь]:[группа] [файл/директория].

Чтобы изменить владельца директории RandD на пользователя labex и группу research, выполните следующую команду. Мы используем sudo, так как изменение группового владения (даже для собственной директории) часто требует повышенных привилегий.

Выполните эту команду в терминале (находясь в директории ~/project):

sudo chown labex:research RandD

Если команда выполнена успешно, она не выведет никакого текста. Изменения применяются незаметно.

Вы успешно изменили владельца директории RandD. На последнем этапе вы наглядно проверите этот результат.

Проверка нового владельца директории с помощью ls -l

На этом этапе вы подтвердите, что смена владельца, выполненная на предыдущем шаге, прошла успешно. В системном администрировании крайне важно всегда проверять, привели ли ваши команды к желаемому результату. Мы воспользуемся той же командой ls -l, что и раньше, чтобы изучить свойства директории.

Ваш терминал по-прежнему должен находиться в директории ~/project. Чтобы увидеть обновленные данные о владельцах директории RandD, снова запустите команду ls -l.

ls -l

Изучите строку вывода для директории RandD. Теперь в ней должен быть указан новый групповой владелец. Результат будет выглядеть примерно так:

drwxrwxr-x 2 labex research 6 Jun 26 10:28 RandD

Сравните это с выводом на этапе 2. Третий столбец (пользователь-владелец) по-прежнему содержит labex. Однако четвертый столбец (группа-владелец) изменился с labex на research. Это подтверждает, что команда chown сработала правильно.

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

Резюме

В ходе этой лабораторной работы вы освоили основные этапы управления владельцами директорий в среде Linux. Вы начали с подготовки необходимых настроек пользователей и групп, что включало создание новой группы research с помощью команды sudo groupadd. Затем вы добавили текущего пользователя labex в эту новую группу, используя sudo usermod -aG, и подтвердили изменения, проверив файл /etc/group.

После настройки среды вы создали новую директорию и изучили ее владельцев по умолчанию с помощью команды ls -l. Ключевым отработанным навыком стало использование команды chown для изменения группового владения директорией на вновь созданную группу research. Наконец, вы подтвердили успешное выполнение операции, повторно запустив ls -l, которая показала обновленного группового владельца директории.