Командная строка: chmod
устанавливаем права доступа с помощью chmod
Во всех операционных системах, основанных на UNIX, большое значение имеют предоставленные пользователям привилегии для работы с файлами и папками.
Существует всего три категории пользователей:
- владелец файла (user),
- группа файла (group),
- остальные (other).
Для каждого файла существует три вида прав:
- чтение ®,
- запись (w),
- выполнение (x).
Если запустить в окне терминала команду ls -al на экране появится список файлов подобный приведенному ниже:
drwxr-xr-x+ 52 george75 staff 1664 12 май 17:06 .
drwxr-xr-x 5 root admin 160 5 дек 2019 ..
-r-------- 1 george75 staff 8 5 ноя 2018 .CFUserTextEncoding
-rw-r--r--@ 1 george75 staff 26628 12 май 22:20 .DS_Store
drwx------ 2 george75 staff 64 8 май 17:44 .Trash
drwxr-x--x 3 george75 staff 96 13 ноя 2019 .adobe
drwxr-xr-x 4 george75 staff 128 13 ноя 2018 .android
drwxrwxrwx 10 george75 staff 320 17 май 2019 .anydesk
Странные символы в начале каждой строки подобные этим drwxr-xr-x+ как раз и указывают какие права на взаимодействие с файлом предоставлены каждой категории пользователей.
Первый символ в такой последовательности указывает на тип файла:
-обычный файл,dдиректория,lссылка.
Затем следуют три набора, содержащие по три символа:
- первый определяет права доступа для владельца файла,
- второй набор устанавливает права доступа для группы пользователей связанной с данным файлом,
- третий набор указывает на права доступа длвс всех остальных пользователей.
Теперь нужно разобраться, что за три символа составляют каждый набор?
Последовательность rwx определяет для каждой категории пользователей права на чтение r, запись w и выполнение (запуск) x файла. Если один из видов прав доступа к файлу отсутствует, он заменяется на -. Таким образом для определенной категории пользователей могут быть установлены права доступа, например: r--, rw-, r-x и так далее.
Менять права доступа к файлу можно с помощью команды chmod.
Для команды chmod существуют два вида синтаксиса:
- с использованием символических аргументов,
- с использованием числовых аргументов.
Для начала разберемся с символическими аргументами. Такой подход используется намного чаще, так как он прост для понимания.
Итак, после команды chmod через пробел следует первый символ, который указывает для кого будет применяться новые права доступа:
aдля всех пользователей (all),uдля владельца (user),gдля группы пользователей (group),oдля остальных пользователей (other).
Затем следует символ + или -:
+дать права,-лишить прав.
Наконец, нужно указать виды предоставляемых или удаляемых прав r, w, x.
Например:
chmod a+r file.txt # все пользователи получают право на чтение файла file.txt
chmod a+rw file.txt # все пользователи получают права на чтение и запись файла file.txt
chmod o-rwx file.txt # остальные пользователи (кроме владельца и группы пользователей связанной с файлом) теряют права на чтение, запись и выполнение файла file.txt
Команда chmod может устанавливать права сразу для нескольких категорий пользователей:
chmod ag-r file.txt # остальные пользователи и пользователи группы, связанной с файлом, теряют право на чтение файла file.txt
Если права устанавливаются для директории, их можно рекурсивно изменить и для всех вложенных файлов и папок, добавив в конце опцию -r.
Теперь обратимся к числовым аргументам, команда chmod с такими аргументами короче и быстрее, но понимание правил их использования требует определенного времени.
Итак, сумма чисел, принимающая значение от 0 до 7, определяет права доступа к файлу для катеоргии пользователей.
При это различные виды прав имеют различный вес:
1можно выполнять,2можно записывать,4можно читать.
В результате получаются следующие комбинации:
0доступ запрещен,1можно выполнять (запускать),2можно записывать,3можно записывать и выполнять,4можно читать,5можно читать и выполнять,6можно читать и записывать,7можно читать, записывать и выполнять.
Например:
chmod 777 file.txt # можно читать, записывать и выполнять файл file.txt для всех категорий пользователей
chmod 755 file.txt # можно читать, записывать и выполнять файл file.txt владельцу файла, всем остальным можно читать и выполнять
chmod 644 file.txt # можно читать и записывать файл file.txt владельцу файла, всем остальным можно читать
Спасибо за внимание.
