Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

>> Python Форум Помощи!

Мы создали форум где отвечаем на все вопросы связанные с языком программирования Python. Ждем вас там!

>> Python Канал в Telegram

Обучающие статьи, видео и новости из мира Python. Подпишитесь на наш TELEGRAM КАНАЛ!

Права доступа к файлам и каталогам

Права доступа к файлам и каталогам

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

Права доступа обозначаются буквами:

r - файл можно читать, а содержимое каталога можно просматривать.

w - файл можно модифицировать, удалить и переименовать, а в каталоге можно создать или удалить файлы. Каталог можно переименовать или удалить.

x - файл можно выполнить, а в каталоге можно выполнить операции над файлами, в том числе производить поиск файлов в нем.

Права доступа к файлу определяются записью типа:

-rw-r--r--

Первый символ - означает, что файл, и не задает никаких прав доступа. Далее три символа (rw-) задают права доступа для владельца (чтение и запись). Символ - означает, что права доступа на выполнение нет. Следующие три символа (r--) задают права для всех остальных пользователей (тольуо чтение).

Права доступа к каталогу, определяется такой строкой:

drwxr-xr-x

Первая буква (d) означает, что это каталог. Владелец может выполнять в каталоге любые действия (rwx), а группа и все остальные пользователи - только читать и выполнять поиск (r-x). Для того чтобы каталог можно было просматривать, должны быть установлены права на выполнение (x). Крове того, права доступа обозначаются числом. Такие числа называются "маской прав доступа". Число состоит из трех цифр от 0 до 7. Первая цифра задает права для владельца, вторая - для группы, а третье для всех остальных пользователей. Например, права доступа -rw-r--r-- соответствуют числу 644.

Для определения прав доступа к файлу или каталогу предназначена функция access() из модуля os. Функция имеет следующий формат:

access(<Путь>, <Режим>)

Функция возвращает True, если проверка прошла успешно, или False в противном случае. В параметре <Режим> могут быть указаны следующие константы, определяющие тип проверки.

os.F_OK - проверка наличия пути или файла.

>>> import os
>>> os.access(r"file.txt", os.F_OK)
True
 
>>> os.access(r"/var/www/site", os.F_OK)
True
 
>>> os.access(r"/var/www/lost", os.F_OK) # Каталог не существует
False

os.R_OK - проверка на возможность чтения файла или каталога.

os.W_OK - проверка на возможность записи в файл или каталог

os.X_OK - определение, является ли файл или каталог выполняемым.

Чтобы изменить права доступа из программы, необходимо воспользоваться функцией chmod() из модуля os. Функция имеет следующий формат:

chmod(<Путь>, <Права доступа>)

Права доступа задаются в виде чисел, перед которыми следует указать 0 (это соответствует восьмеричной записи числа):

>>> os.chmod(r"file.txt", 0777)

После трудного рабочего дня хочется полежать в постели и насладиться любимыми телепередачами. Но, из за неуплаты кабельного телевидения или отдельных каналов, не получится спокойно завершить день. Смотреть бесплатно ТВ от Киевстара теперь возможно как никогда раньше. Отличные качественные каналы в HD качестве порадуют вас этой зимой.