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

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

Введение

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

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

Подготовка рабочего пространства и создание файла

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

Сначала создадим новую директорию с именем RandD (сокращение от Research and Design — исследования и разработка) внутри вашего текущего рабочего каталога ~/project. Для создания новых директорий используется команда mkdir.

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

mkdir RandD

Затем перейдите в только что созданную директорию RandD. Команда cd (change directory) позволяет перемещаться между директориями в файловой системе.

cd RandD

Приглашение вашего терминала теперь должно указывать на то, что вы находитесь внутри директории ~/project/RandD.

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

Создайте новый файл с именем design_doc.odt:

touch design_doc.odt

Чтобы подтвердить создание файла и проверить его свойства по умолчанию, используйте команду ls -l. Эта команда выводит содержимое текущей директории в длинном формате, предоставляя подробную информацию, такую как права доступа, владелец, группа, размер и дата изменения.

ls -l

Вы должны увидеть вывод, похожий на следующий. Обратите внимание, что по умолчанию владельцем нового файла является ваша учетная запись (labex) и ваша основная группа (labex). Строка прав доступа -rw-rw-r-- будет подробно объяснена в следующих шагах.

total 0
-rw-rw-r-- 1 labex labex 0 Jun 26 10:36 design_doc.odt

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

Смена владельца файла с помощью команды chown

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

По нашему сценарию файл design_doc.odt должен управляться новым пользователем student1 и новой группой для совместной работы research. Поскольку этот пользователь и группа еще не существуют, вы должны сначала их создать.

Убедитесь, что вы все еще находитесь в директории ~/project/RandD. Если нет, используйте команду cd ~/project/RandD, чтобы перейти туда.

Сначала создайте группу research с помощью команды groupadd. Это операция системного уровня, требующая прав администратора, поэтому необходимо использовать sudo.

sudo groupadd research

Затем создайте пользователя student1 с помощью команды useradd. Флаг -m используется для создания домашней директории нового пользователя, что является стандартной практикой. Это также требует использования sudo.

sudo useradd -m student1

Теперь, когда пользователь student1 и группа research созданы, вы можете изменить владельца файла design_doc.odt. Синтаксис chown выглядит так: chown пользователь:группа имя_файла. Вам понадобится sudo для выполнения этой команды, так как вы назначаете файл другому пользователю.

sudo chown student1:research design_doc.odt

Чтобы убедиться, что данные о владельце обновились, снова используйте команду ls -l.

ls -l

В выводе теперь будет указан student1 в качестве владельца-пользователя и research в качестве владельца-группы.

total 0
-rw-rw-r-- 1 student1 research 0 Jun 26 10:36 design_doc.odt

Сравните это с предыдущим выводом. Третий и четвертый столбцы изменились с labex labex на student1 research, что подтверждает успешное выполнение команды. Вы успешно передали права владения проектным документом.

Изменение прав доступа к файлу с помощью команды chmod

На этом этапе вы научитесь контролировать, кто может читать, записывать или исполнять файл, используя команду chmod (change mode). Права доступа к файлам — это фундаментальный аспект модели безопасности Linux. Вы попрактикуетесь в удалении прав для «остальных» (others), чтобы сделать документ более защищенным.

Сначала убедитесь, что вы находитесь в директории ~/project/RandD. Давайте снова проверим текущие права доступа design_doc.odt с помощью ls -l.

ls -l
-rw-rw-r-- 1 student1 research 0 Jun 26 10:36 design_doc.odt

Строка -rw-rw-r-- представляет права доступа к файлу. Она разделена на три набора по три символа для пользователя (владельца), группы и остальных (всех остальных).

  • rw-: Владелец, student1, имеет права на чтение (read) и запись (write).
  • rw-: Группа, research, уже имеет права на чтение и запись.
  • r--: Остальные имеют только право на чтение.

Как видите, группа research уже имеет доступ на запись в этот документ, что позволяет работать совместно. Однако, чтобы обеспечить конфиденциальность документа, следует удалить все права для категории «остальные». Это можно сделать с помощью chmod, используя восьмеричную (числовую) нотацию — распространенный и эффективный метод.

Давайте еще раз проверим текущие права:

ls -l

Вывод подтверждает текущие настройки:

-rw-rw-r-- 1 student1 research 0 Jun 26 10:36 design_doc.odt

Теперь, чтобы гарантировать конфиденциальность, удалим все права для «остальных».

Вот как работают восьмеричные права доступа:

  • r (чтение) = 4
  • w (запись) = 2
  • x (выполнение) = 1

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

  • Пользователь: чтение (4) + запись (2) = 6
  • Группа: чтение (4) + запись (2) = 6
  • Остальные: нет прав = 0

Результирующий код прав доступа — 660. Применим его.

sudo chmod 660 design_doc.odt

Наконец, проверим права в последний раз.

ls -l

Вывод подтверждает, что у «остальных» теперь нет никаких прав (---), и документ защищен.

-rw-rw---- 1 student1 research 0 Jun 26 10:36 design_doc.odt

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

Управление правами доступа к директориям

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

  • r (чтение): Позволяет пользователю просматривать содержимое директории (т. е. видеть имена файлов и поддиректорий внутри).
  • w (запись): Позволяет пользователю создавать, удалять и переименовывать файлы внутри директории. Это мощное право, так как оно позволяет изменять содержимое директории независимо от прав доступа к самим файлам.
  • x (выполнение): Позволяет пользователю войти в директорию (например, с помощью cd) и получить доступ к файлам или поддиректориям внутри нее. Без права на выполнение вы не сможете получить доступ к объектам внутри директории, даже если у вас есть право на чтение.

Сначала поднимитесь в родительскую директорию ~/project, чтобы иметь возможность работать с самой директорией RandD.

cd ..

Теперь проверим текущего владельца и права доступа директории RandD с помощью команды ls -ld. Флаг -d здесь критически важен; он указывает ls вывести информацию о самой директории, а не о ее содержимом.

ls -ld RandD

Начальный вывод будет выглядеть примерно так:

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

Это показывает, что владелец (labex) имеет полный доступ (rwx), группа (labex) также имеет полный доступ (rwx), а остальные могут только просматривать содержимое и входить в директорию (r-x). Чтобы сделать эту папку подходящей для совместной работы команды research, сначала нужно изменить группового владельца директории на research.

sudo chown :research RandD

Затем вы установите права доступа так, чтобы и владелец (labex), и группа (research) имели полный контроль, полностью закрыв доступ для остальных. Желаемые права — rwxrwx---, что соответствует восьмеричному коду 770. Как владелец директории, вы можете изменить ее права без использования sudo.

chmod 770 RandD

Наконец, проверим изменения.

ls -ld RandD

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

drwxrwx--- 2 labex research 28 Jun 26 10:36 RandD

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

Резюме

В этой лабораторной работе вы изучили основные шаги по подготовке рабочего пространства в среде Linux. Это включало создание новой директории с помощью команды mkdir, переход в нее с помощью cd и создание пустого файла с помощью touch. Вы также попрактиковались в использовании команды ls -l для проверки подробных свойств созданного файла, изучив его владельца по умолчанию, группу и настройки прав доступа, что заложило основу для последующих задач управления.

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