Права на файлы и папки в Linux: chmod
Довольно долго путался в правах — когда только начал работать с линуксом. Без дополнительных пояснений запись в виде «rwx rwx r—» выглядит довольно необычно и непонятно для неискушенных пользователей. В действительности же, достаточно иметь простые таблицы сравнений, чтобы без труда разобраться в этом. Системному администратору, и любым фанатам линукса — знать эти значения, Обязательно!
Итак, права в Linux на любой файл или папку всегда назначаются, для 3х групп пользователей:
1. Сам пользователь.
2. Группа этого пользователя ( права будут действительны для всех юзеров, входящих в эту группу ).
3. Все остальные пользователи.
Права могут быть 3х видов:
r - разрешает просмотр содержимого w - разрешает изменение содержимого x - разрешает запуски выполнение
Ниже представлена таблица, показывающая разнообразные комбинации Chmod для разных типов объектов:
Таким образом, для каждой группы пользователей может быть выбран один вид доступа.
‘Права’ | ‘Файл’ | ‘Папка’ |
— | Ничего нельзя делать | Доступ к каталогу и его подкаталогам запрещен |
r— | Можно читать содержимое | Можно прочитать содержимое каталога |
rw- | Можно видеть и изменять содержимое | Можно добавить, удалить, изменить файл каталога |
rwx | Читать, изменять и выполнять файлик | Можно читать, удалять, изменять файлики, сделать каталог текущим, т.е. “войти” в этот каталог. |
r-x | Можно прочитать, либо выполнить | Можно зайти в каталог и прочитать его содержимое, удалять или добавлять файлы нельзя. |
—x | Выполнить, если файлик двоичный | Пользователь может выполнить двоичный файл о существовании которого ему известно, зайти или прочитать каталог запрещено |
Таблица значений:
‘Права’ | ‘Цифровая форма’ | ‘Символьная форма’ |
Ничего нельзя делать | 0 | — |
Только чтение | 4 | r— |
Только запись | 2 | -w- |
Только выполнение | 1 | —x |
Чтение и запись | 6 | rw- |
Чтение и выполнение | 5 | r-x |
Чтение, запись, выполнение | 7 | Rwx |
Вы видите, что здесь для описания прав доступа применяются записи с использованием латинских букв и дефисов. В линукс за назначение прав отвечает команда chmod и она оперирует только числовыми значениями. Числовые и символьные значения довольно легко и однозначно сопоставляются следующим образом:
r (читать) заменяют на 4
w (запись) заменяют на 2
x (исполнение) заменяют на 1
0 означает – ничего не делать (то, что в буквенной записи обозначается дефисом)
Давайте опять вернемся к примеру записи, приведенному мною чуть ранее: rwx rwx r--
. Если заменить в ней буквы и дефисы на цифры, в соответствии с только что описанным правилом и при этом сложить цифры в каждой тройке, то получим цифровой вид этой записи: 774
.
Т.е. получается, что сумма этих цифр и показывает chmod по отношению к файлам или папке. Например:
7 (rwx) = 4 + 2 +1 (полные права) 5 (r-x)= 4 + 0 + 1 (чтение и выполнение) 6 (rw-) = 4 + 2 + 0 (чтение и запись) 4 (r--) =4 + 0 + 0 (только чтение)
В таблице показаны возможные комбинации записи в цифрах, применительно к группам пользователей:
‘Права’ | ‘Владелец’ | ‘Группа’ | ‘Остальные’ |
777 | читать записывать исполнять |
читать записывать исполнять |
Читать записывать исполнять |
776 | читать записывать исполнять |
читать записывать исполнять |
Читать записывать |
775 | читать записывать исполнять |
читать записывать исполнять |
Читатьисполнять |
774 | читать записывать исполнять |
читать записывать исполнять |
Читать |
766 | читать записывать исполнять |
читать записывать |
Читать записывать |
655 | читать записывать |
читатьисполнять | Читатьисполнять |
644 | читать записывать |
читать | Читать |
Сама команда назначения прав выглядит следующим образом:
chmod ‘числовое значение прав’ ‘папка или файл, на который назначаем права’
Примеры
chmod 777 script.sh полные права на запись, чтение и исполнение для всех групп пользователей для файла script.sh соответствие: rwxrwxrwx
chmod 644 /home/feanor184/script.sh права на чтение и запись для владельца файла script.sh который находится в корневой домашней директории пользователя feanor184, для остальных групп этот файл будет доступен только для чтения. соответствие: rw-r—r—
chmod -R 777 /scripts полные права на папку scripts и на все вложенные в нее файлы, для всех групп пользователей. ( ключ -R задается для назначения прав для вложенных файлов )
Во всем линукс хорош, вот только права на общие сетевые папки настроить гибко — довольно проблемно. AD в этом плане намного более удобен.
команда chmod -R 777 /scripts очень полезна при тестировании разных движков(CMS). Я обычно перед тестами сначала загоняю в папку htdocs установочную папку,потом командой разрешаю права. Это укорачивает время и уменьшает вероятность возникновения различных ошибок во время установки.
Я как линукс поставил сразу возникла проблема с этими правами. Недолго мучаясь я вернулся на windows обратно) Хотя по работе в скором времени придется пересаживаться на linux, так что в закладочках вашу статью подержу)