Изучение прав на запись
На этом этапе мы рассмотрим концепцию прав на запись в среде Linux. Понимание прав доступа к файлам является важным аспектом управления доступом к вашим файлам и каталогам. В частности, право на запись определяет, можно ли изменять файл или каталог.
В Linux у каждого файла и каталога есть набор прав доступа для трех категорий пользователей:
- Владелец (Owner): Пользователь, которому принадлежит файл или каталог.
- Группа (Group): Группа, к которой относится файл или каталог.
- Другие (Others): Все остальные пользователи системы.
Для каждой категории существует три типа прав доступа:
- Чтение (Read, r): Позволяет просматривать содержимое файла или список файлов в каталоге.
- Запись (Write, w): Позволяет изменять файл или создавать, удалять или переименовывать файлы в каталоге.
- Выполнение (Execute, x): Позволяет выполнять файл (если это программа) или входить в каталог.
Начнем с создания файла и изучения его стандартных прав доступа. Откройте редактор VS Code и создайте новый файл с именем my_file.txt
в каталоге ~/project
. Пока можно оставить файл пустым.
Далее откройте терминал и перейдите в каталог ~/project
:
cd ~/project
Теперь используем команду ls -l
для просмотра прав доступа к файлу:
ls -l my_file.txt
Вы увидите вывод, похожий на следующий:
-rw-rw-r-- 1 labex labex 0 Oct 26 14:35 my_file.txt
Разберем этот вывод:
- Первый символ (
-
) указывает, что это файл (в отличие от каталога, для которого бы был символ d
).
- Следующие девять символов (
rw-rw-r--
) представляют права доступа.
- Первые три (
rw-
) - это права владельца (чтение и запись).
- Следующие три (
rw-
) - это права группы (чтение и запись).
- Последние три (
r--
) - это права для других пользователей (только чтение).
1
указывает количество жестких ссылок на файл.
labex labex
- это соответственно имя владельца и группы.
0
- размер файла в байтах.
Oct 26 14:35
- дата и время последнего изменения файла.
my_file.txt
- имя файла.
В настоящее время владельцу (вам, как labex
) и группе предоставлены права на чтение и запись, в то время как другие пользователи имеют только право на чтение. Это означает, что вы можете изменять файл, но другие пользователи системы могут только просматривать его.
Теперь попробуем удалить право на запись у владельца с помощью команды chmod
. Команда chmod
используется для изменения прав доступа к файлам.
chmod u-w my_file.txt
Здесь u-w
означает "удалить право на запись у владельца".
Теперь проверим права доступа снова:
ls -l my_file.txt
Теперь вывод должен выглядеть так:
-r--rw-r-- 1 labex labex 0 Oct 26 14:35 my_file.txt
Обратите внимание, что права доступа владельца теперь r--
, что означает доступ только для чтения.
В следующих шагах мы увидим, как использовать Python для проверки прав на запись и обработки ситуаций, когда эти права отсутствуют.