Close

Права доступа. Chmod

Файлы и директории в Unix-системах имеют три типа прав доступа: чтение(‘r’), запись(‘w’) и выполнение(‘x’). Каждый тип может быть разрешен или запрещен для трех категорий пользователей: владельца (‘owner’), пользователей из группы владельца (‘group’) и прочих пользователей.

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

Вывод будет похож на этот:

Левая часть строки показывает режимы доступа. Первый символ (в нашем случае ‘-‘) означает что перед нами обычный файл. Для директории он выглядит как ‘d’, ссылки это ‘l’, сокеты – ‘s’. Символы со второго по четвертый (‘rwx’) – маска прав владельца файл. Символы с 5го по 7й — права для группы, как видно, пользователи группы не могу записывать в файл. Дальше идут права прочих пользователей. В нашем случае им запрещено читать и писать в файл.

Таблица прав доступа для наглядности:

OCTBINМаскаПрава на файлПрава на директорию
0000---отсутствие прав
отсутствие прав
1001--xправа на выполнениедоступ к файлам и их атрибутам
2010-w-права на записьотсутствие прав
3011-wxправа на запись и выполнение
все, кроме доступа к именам файлов
4100r--права на чтениетолько чтение имен файлов
5101r-xправа на чтение и выполнение
чтение имен файлов и доступ файлам и их атрибутам
6110rw-права на чтение и записьтолько чтение имен файлов
7111rwxполные прававсе права

Для управления правами существует команда chmod, общая форма которой выглядит так:

Где:
X комбинация символов: u — владелец, g — группа, o — прочие, a — все;
@ это знак + для добавления прав, — для отключения, или = заменить права на указанные;
Y это комбинация символов r, w, x.

Вот несколько примеров:

Выдать владельцу права на выполнение и чтение но не запись:

Отключить права на rwx для группы и прочих пользователей:

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

Выдать всем права на выполнение двух файлов:

Выдать группе чтение и выполнение, прочим пользователям – выполнение:

Выдача прав работает также с директориями. Те пользователи, кто имеет права ‘r’ на директорию могут просматривать список ее файлов (команда ls). Право ‘w’ делает возможным создавать и удалять файлы. ‘x’ делает возможным доступ к файлу по известному имени.

Помимо текстовых масок можно использовать и числовые. Для этого используются цифры из колонки OCT таблицы. Первая цифра – это права для владельца, вторая для группы, третья – для прочих пользователей.
chmod 744 file — установит права для файла file — (rwxr—r—);
chmod -R 775 directory — установит права на каталог directory и на все объекты, что внутри этого каталога, включая содержимое подкаталогов (rwxrwxr-x)
chmod 700 * — установит права только для владельца на все файлы и каталоги в текущем каталоге, включая подкаталоги и их содержимое (rwx——).

C полным списком параметром можно ознакомиться выполнив man chmod или прочитать здесь https://ru.wikipedia.org/wiki/Chmod.

Поделиться: