Командная строка: 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 владельцу файла, всем остальным можно читать
Спасибо за внимание.