Реализация прав доступа к файлам

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

Введение

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

В этой лабораторной работе вы получите практический опыт работы с основными командами для управления правами доступа к файлам. Вы узнаете, как:

  • Создавать новый файл с помощью команды touch.
  • Изменять права доступа к файлу с помощью команды chmod с использованием числовой (восьмеричной) нотации.
  • Изменять владельца и группу файла с помощью команды chown.
  • Проверять изменения с помощью команды ls -l.
  • Устанавливать стандартные права доступа для каталога.

К концу этой лабораторной работы вы будете уверенно владеть основными принципами прав доступа к файлам и каталогам в Linux.

Создание тестового файла командой touch /tmp/testfile

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

Мы создадим наш тестовый файл в каталоге /tmp, который является стандартным местом для временных файлов.

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

touch /tmp/testfile

Если команда выполнена успешно, она не выдаст никакого вывода. Вы можете дополнительно проверить, что файл создан, выведя его список с помощью ls /tmp/testfile.

Установка прав доступа командой chmod 644 /tmp/testfile

На этом шаге вы узнаете, как изменить права доступа к только что созданному файлу. Для этой цели используется команда chmod (change mode — изменить режим). Права доступа можно устанавливать с использованием символической или числовой (восьмеричной) нотации. Здесь мы будем использовать числовой метод, который очень распространен.

В числовой нотации права доступа представляются трехзначным числом, соответствующим владельцу (owner), группе (group) и прочим пользователям (other users) соответственно. Каждое право имеет свое значение:

  • 4 для чтения (read, r)
  • 2 для записи (write, w)
  • 1 для выполнения (execute, x)

Мы установим права доступа в 644, что является очень распространенной настройкой для файлов. Это переводится следующим образом:

  • Владелец: 6 (4+2) -> чтение и запись (rw-)
  • Группа: 4 -> только чтение (r--)
  • Прочие: 4 -> только чтение (r--)

Теперь выполните следующую команду, чтобы применить эти права доступа к вашему тестовому файлу:

chmod 644 /tmp/testfile

Эта команда не выведет никакого вывода. На следующем шаге мы проверим, были ли права доступа применены корректно.

Смена владельца командой chown root:root /tmp/testfile

На этом шаге вы измените владельца файла. Команда chown (change owner — сменить владельца) используется для изменения пользователя и/или группы, владеющей файлом. Синтаксис: chown user:group filename.

Смена владельца файла на другого пользователя (например, root) является привилегированной операцией, требующей административных прав. Вам потребуется использовать команду sudo для выполнения chown с необходимыми разрешениями. В этой среде LabEx пользователь labex может использовать sudo без пароля.

Давайте сменим владельца и группу /tmp/testfile на root. Выполните следующую команду:

sudo chown root:root /tmp/testfile

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

Проверка командой ls -l /tmp/testfile

На этом шаге вы проверите все изменения, которые вы внесли до сих пор. Команда ls -l предоставляет формат "длинного списка" (long listing), который отображает подробную информацию о файлах, включая права доступа, владельца, группу, размер и дату изменения.

Выполните следующую команду, чтобы просмотреть /tmp/testfile:

ls -l /tmp/testfile

Вы должны увидеть вывод, похожий на следующий (дата и время будут отличаться):

-rw-r--r-- 1 root root 0 Oct 22 15:13 /tmp/testfile

Давайте разберем этот вывод:

  • -rw-r--r--: Это права доступа к файлу. Первый символ - указывает, что это обычный файл. rw- показывает, что владелец (root) имеет права на чтение и запись. Следующие r-- показывают, что группа (root) имеет только право на чтение. Последние r-- показывают, что все остальные пользователи также имеют только право на чтение. Это соответствует установленным вами 644.
  • root root: Это показывает владельца и группу файла, которые вы изменили на root.

Теперь вы успешно создали файл, установили его права доступа и изменили его владельца.

Защита каталога командой chmod 755 /tmp/testdir

На этом заключительном шаге вы установите права доступа для каталога. Права доступа к каталогам аналогичны правам доступа к файлам, но бит execute (x) имеет особое значение: он предоставляет возможность входить в каталог и получать доступ к файлам внутри него.

Распространенной и безопасной настройкой прав доступа для каталогов является 755. Давайте разберем ее:

  • Владелец: 7 (4+2+1) -> чтение, запись и выполнение (rwx). Владелец может просматривать содержимое, создавать/удалять файлы и входить в каталог.
  • Группа: 5 (4+1) -> чтение и выполнение (r-x). Члены группы могут просматривать файлы и входить в каталог, но не могут создавать или удалять файлы.
  • Остальные: 5 (4+1) -> чтение и выполнение (r-x). Другие пользователи также могут просматривать файлы и входить в каталог.

Каталог с именем /tmp/testdir был создан для вас в начале этого лабораторного занятия (lab). Теперь примените к нему права доступа 755 с помощью команды chmod.

chmod 755 /tmp/testdir

Вы можете проверить изменение с помощью команды ls -ld /tmp/testdir. Флаг -d важен для вывода сведений о самом каталоге, а не о его содержимом.

Резюме

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

В этом лабораторном занятии вы научились:

  • Создавать пустой файл с помощью touch.
  • Использовать chmod с числовыми (восьмеричными) кодами, такими как 644 для файлов и 755 для каталогов, для контроля доступа.
  • Использовать sudo chown для изменения владельца и группы файла.
  • Использовать ls -l для проверки и подтверждения прав доступа и владения файлами.

Эти команды являются важными инструментами для защиты ваших файлов и поддержания хорошо организованной системы. Освоение их — ключевой шаг на пути к уверенному владению Linux.