Введение
В системах Linux владение файлами является важной частью безопасности и контроля доступа. Каждый файл и каталог имеют владельца и группу, которые определяют, кто может читать, записывать или выполнять их. Понимание того, как управлять владением файлами, является обязательным для системных администраторов и пользователей Linux, чтобы обеспечить надлежащую безопасность и структуру в своих системах.
В этом лабораторном занятии (LabEx) вы научитесь изменять и управлять владением файлами в Linux с помощью команды chown. Вы узнаете, как просматривать текущее владение, изменять владельцев файлов, изменять назначения групп и применять эти изменения рекурсивно к каталогам.
Понимание владения файлами в Linux
В Linux каждый файл и каталог имеют владельца и группу. Эти атрибуты владения являются основой системы прав доступа в Linux.
Начнем с изучения текущей структуры каталогов и понимания владения файлами:
cd ~/project
ls -l
В выводе должны отобразиться список файлов и каталогов (если они есть) с информацией о их владельцах. В выводе команды ls -l третья колонка показывает владельца, а четвертая - группу.
Теперь создадим новый файл и изучим его стандартное владение:
touch data_file.txt
ls -l data_file.txt
Вы должны увидеть вывод, похожий на следующий:
-rw-r--r-- 1 labex labex 0 Jan 1 12:00 data_file.txt
Это показывает, что файл data_file.txt принадлежит пользователю labex и входит в группу labex. Первая часть (-rw-r--r--) показывает права доступа к файлу.
Чтобы узнать, под каким пользователем вы сейчас вошли в систему, выполните:
whoami
Эта команда отображает ваше текущее имя пользователя, которое должно быть labex. Это объясняет, почему новые файлы принадлежат пользователю labex.
Изменение владельца файлов с помощью chown
Команда chown используется для изменения владельца файла или каталога. Для изменения владельца на другого пользователя требуются привилегии суперпользователя (sudo).
Сначала создадим нового пользователя, которого будем использовать в качестве нового владельца нашего файла:
sudo adduser --disabled-password --gecos "" datauser
Эта команда создает нового пользователя с именем datauser без пароля (только для целей лабораторной работы). Опция --gecos "" пропускает запрос на ввод информации о пользователе.
Теперь изменим владельца файла data_file.txt с labex на datauser:
sudo chown datauser data_file.txt
ls -l data_file.txt
Теперь в выводе должен быть отображен datauser как владелец:
-rw-r--r-- 1 datauser labex 0 Jan 1 12:00 data_file.txt
Базовый синтаксис команды chown выглядит следующим образом:
chown [OPTIONS] USER[:GROUP] FILE(s)
Где:
USER- имя пользователя нового владельцаGROUP(необязательно) - имя новой группыFILE(s)- файлы или каталоги, для которых нужно изменить владельца
Создадим еще один файл для практики:
touch config_file.txt
sudo chown datauser config_file.txt
ls -l config_file.txt
Проверьте, что владелец был изменен правильно.
Изменение группы-владельца файла
В Linux файлы также принадлежат определенной группе. Присвоение группы влияет на то, что пользователи внутри этой группы могут делать с файлом на основе групповых прав доступа.
Создадим новую группу и затем присвоим наши файлы этой группе:
sudo groupadd datagroup
groups
Команда groups показывает, к каким группам принадлежит текущий пользователь. Теперь добавим текущего пользователя в новую группу:
sudo usermod -a -G datagroup labex
Эта команда добавляет (-a) пользователя labex в группу (-G) datagroup. Обратите внимание, чтобы изменения группы вступили в силу, обычно нужно выйти из системы и войти снова. В рамках этой лабораторной работы мы продолжим без выхода из системы.
Теперь изменим группового владельца нашего файла:
sudo chown :datagroup data_file.txt
ls -l data_file.txt
Теперь вывод должен показать следующее:
-rw-r--r-- 1 datauser datagroup 0 Jan 1 12:00 data_file.txt
Обратите внимание, что мы использовали :datagroup для указания только группы без изменения владельца. Вы также можете изменить и владельца, и группу одной командой:
sudo chown datauser:datagroup config_file.txt
ls -l config_file.txt
Эта команда изменяет владельца и группу файла config_file.txt соответственно на datauser и datagroup.
Рекурсивное изменение владельца
Часто возникает необходимость изменить владельца каталога и всех его содержимого. Опция -R (рекурсивно) в команде chown позволяет сделать это.
Создадим каталог с некоторыми файлами внутри:
mkdir -p data_directory/subdirectory
touch data_directory/file1.txt
touch data_directory/file2.txt
touch data_directory/subdirectory/file3.txt
Проверим текущих владельцев каталога и его содержимого:
ls -l data_directory
ls -l data_directory/subdirectory
Теперь рекурсивно изменим владельца каталога и всего его содержимого:
sudo chown -R datauser:datagroup data_directory
Проверьте результаты:
ls -l data_directory
ls -l data_directory/subdirectory
Теперь все файлы и каталоги внутри data_directory должны быть владельцем datauser и принадлежать группе datagroup.
Рекурсивная опция очень мощная и должна использоваться с осторожностью, особенно при изменении владельца системных каталогов, так как неправильное использование может повлиять на функциональность системы.
Резюме
В этой лабораторной работе вы научились управлять владельцем файлов в Linux, что является важным навыком для системного администрирования и управления безопасностью. Вот краткий обзор того, что вы достигли:
- Вы узнали о концепциях владения файлами в Linux и о том, как просматривать текущую информацию о владельце.
- Вы создали нового пользователя и изменили владельца файлов с помощью команды
chown. - Вы научились создавать и управлять группами, а также изменять группового владельца файлов.
- Вы изучили, как рекурсивно изменять владельца каталогов и их содержимого.
Эти навыки являются фундаментальными для управления системами Linux, особенно в многопользовательских средах, где правильные права доступа и владение файлами являются важными для безопасности и функциональности системы.
Помните, что изменение владельца требует привилегий суперпользователя (с использованием sudo), и рекурсивные изменения должны выполняться с осторожностью, чтобы избежать непредвиденных последствий, особенно в производственных средах.



