I Shar

I Shar

мир глазами веб-разработчика

Командная строка: chmod

устанавливаем права доступа с помощью chmod

I Shar

время чтения 3 мин.

Photo by Robin Vet on Unsplash

Во всех операционных системах, основанных на UNIX, большое значение имеют предоставленные пользователям привилегии для работы с файлами и папками.

Существует всего три категории пользователей:

  1. владелец файла (user),
  2. группа файла (group),
  3. остальные (other).

Для каждого файла существует три вида прав:

  1. чтение ®,
  2. запись (w),
  3. выполнение (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+ как раз и указывают какие права на взаимодействие с файлом предоставлены каждой категории пользователей.

Первый символ в такой последовательности указывает на тип файла:

  1. - обычный файл,
  2. d директория,
  3. l ссылка.

Затем следуют три набора, содержащие по три символа:

  1. первый определяет права доступа для владельца файла,
  2. второй набор устанавливает права доступа для группы пользователей связанной с данным файлом,
  3. третий набор указывает на права доступа длвс всех остальных пользователей.

Теперь нужно разобраться, что за три символа составляют каждый набор?

Последовательность rwx определяет для каждой категории пользователей права на чтение r, запись w и выполнение (запуск) x файла. Если один из видов прав доступа к файлу отсутствует, он заменяется на -. Таким образом для определенной категории пользователей могут быть установлены права доступа, например: r--, rw-, r-x и так далее.

Менять права доступа к файлу можно с помощью команды chmod.

Для команды chmod существуют два вида синтаксиса:

  1. с использованием символических аргументов,
  2. с использованием числовых аргументов.

Для начала разберемся с символическими аргументами. Такой подход используется намного чаще, так как он прост для понимания.

Итак, после команды chmod через пробел следует первый символ, который указывает для кого будет применяться новые права доступа:

  1. a для всех пользователей (all),
  2. u для владельца (user),
  3. g для группы пользователей (group),
  4. o для остальных пользователей (other).

Затем следует символ + или -:

  1. + дать права,
  2. - лишить прав.

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


Спасибо за внимание.

    • bash
    • tutorial

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.