Изменение прав доступа к файлам

Изменение прав доступа к файлам в Unix-подобных операционных системах, таких как Linux и macOS, осуществляется с помощью команды chmod. Эта команда позволяет изменять права доступа для владельца файла, группы и всех остальных пользователей.

Понимание прав доступа

Каждый файл или директория имеет три набора прав:

  • Владелец (user, u): владелец файла.

  • Группа (group, g): пользователи, принадлежащие той же группе, что и файл.

  • Остальные (others, o): все остальные пользователи.

Каждый набор прав состоит из трех компонентов:

  • Чтение (read, r): разрешение на чтение файла.

  • Запись (write, w): разрешение на изменение или удаление файла.

  • Исполнение (execute, x): разрешение на выполнение файла (для скриптов и исполняемых файлов) или переход по директории.

Символьная форма команды chmod

Вы можете использовать символы для задания прав:

  • r — чтение

  • w — запись

  • x — исполнение

  • + — добавление права

  • - — удаление права

  • = — установка точных прав

Пример: установить права на чтение, запись и исполнение для владельца файла, на чтение и исполнение для группы, и на чтение для остальных:

chmod u=rwx,g=rx,o=r filename

Чтобы добавить право на исполнение для всех:

chmod +x filename

Числовая форма команды chmod

Права доступа также можно задать с помощью числовых значений. В числовой системе:

  • 4 соответствует праву чтения (r),

  • 2 — праву записи (w),

  • 1 — праву исполнения (x).

Эти значения складываются для получения нужных прав:

  • 7 (4 + 2 + 1) = чтение, запись и исполнение (rwx),

  • 6 (4 + 2) = чтение и запись (rw-),

  • 5 (4 + 1) = чтение и исполнение (r-x),

  • 4 = чтение (r--).

Пример: установить права rwx для владельца, rx для группы и r для остальных:

chmod 754 filename

Изменение прав доступа к директориям

При изменении прав для директорий важно учитывать, что право на исполнение (x) для директории означает возможность перехода в неё (команда cd). Например:

chmod 755 /path/to/directory

Это установит права rwx для владельца и rx для группы и остальных, что является типичным для директорий.

Рекурсивное изменение прав

Если вам нужно изменить права доступа ко всем файлам и поддиректориям внутри директории, используйте флаг -R:

chmod -R 755 /path/to/directory

Этот флаг рекурсивно изменит права доступа для всех файлов и поддиректорий внутри указанной директории.

Проверка прав доступа

Чтобы проверить текущие права доступа к файлу или директории, используйте команду ls -l:

ls -l filename

Вывод покажет текущие права доступа в виде строки символов, например: -rwxr-xr--.

Теперь вы знаете, как изменять права доступа к файлам и директориям с помощью команды chmod, используя как символьную, так и числовую форму.

Last updated