Вся правда о chmod
Создано Евгений Злобин в июня 26, 2008Тема довольно актуальна для новичков. Хоть в сети полно информации по поводу выставления прав доступа к файлам, тем не менее на различных форумах с завидной регулярностью появляются топики типа: “я не могу записать данные в директорию” или “как выставить на папку права 777″. Постараюсь разобрать всё по полочкам.
chmod – устанавливает права доступа на файл или директорию. Они указывают кому и какие привилегии доступны. Отсюда вытекает основная задача – защита информации и распределение полномочий.
Все пользователи разделяются на три категории
1) Владелец. К этой категории относится пользователь, создавший файл или директорию. По умолчанию имеет самые широкие права.
2) Группа, к которой отностится владелец.
3) Мир - обычные пользователи, не относящиеся к первой и второй группе.
Права пользователя также подразделяются на три типа
r– чтение (пользователю разрешено прочитать файл), производная от Read. Соответствует цифра 4
-w- запись (пользователю позволено изменять содержимое файла – перезаписывать), производная от Write. Соответствует цифра 2
–x выполнение (разрешает запустить файл, если он является программой), производная от eXecute. Соответствует цифра 1
Cуществует три категории пользователей и столько же режимов доступа. Следовательно в символьном варианте назначение прав выглядит следующим образом: rwx rwx rwx т.е. каждая тройка определяет какие права будет иметь та или иная категория пользователей.
Пример:
rwxr-xr–
Данный пример показывает, что владелец имеет полные права, группа, к которой относится владелец имеет права на чтение и исполнение и все остальные пользователи только на чтение.
Как вы успели заметить, права ещё можно записывать в виде цифр, отмечу, в виде восьмеричной записи. Как они образуются? Возьмем тот же самый пример:
rwxr-xr– в цифром виде это будет 0754
Первый ноль означает, что эта запись в восьмеричном виде, обычно его опускают. Семерку мы получили из суммы (r+w+x), выше я уже описывал какая цифра соответствует каждой букве. В итоге мы получаем (4+2+1) = 7. Пятерку и четверку мы получаем аналогичным образом. (r+x) = 5 и (r) = 4.
Основные права выставляемые на файлы и каталоги
0777 (rwxrwxrwx) – даёт всем группам пользователей абсолютные права на управление. Обычно устанавливается для папок, куда пользователь заливает свои файлы, например аватары на форуме.
Замечание:
Предположим, у нас имеется текстовый файл с какой-либо информацией, например, рецепт блюда. Права доступа на этот файл 0666 и 0777 будут абсолютно идентичны, т.к. это не исполняемая программа и, следовательно, права на выполнение к этому файлу не имеют никакого отношения.
0755 (rwxr-xr-x) – позволяет всем пользователям читать и выполнять файл, а запись в файл доступна только владельцу. Это основная запись для исполняемых файлов.
Если необходимо осуществить сохранность конфиденциальных данных в файле и запретить доступ к нему посторонним пользователям, то устанавливаются права 0600 (
rw——-).
Надеюсь эта статья сможет уменьшить количество вопросов типа “как работать с chmod“.
Может быть Вам это интересно?
- Подключение по ssh
- Установка APE на CentOS
- Установка nginx,eaccelerator и обновление php,mysql,apache на CentOS
© "Паутина фриланса".


Напишу про каталоги поподробнее
r – право на чтение _содержимого_ каталога. Никак не влияет на способность пользователя просматривать какой-либо файл в каталоге, т.к. для этого файла есть своя установка права на чтение. Если это право убрать, то пользователь всего лишь не сможет просмотреть, что находится в каталоге. Однако если он знает имя файла в этом каталоге, то он может обратиться к файлу по имени.
w – право на запись _в_каталог_. Если его убрать, то пользователь не сможет создавать новые файлы в каталоге и удалять существующие. К редактированию содержимого существующего файла отношения не имеет, для него тоже есть соответствующее право на запись
x – для файлов это было право на запуск, а для каталогов – право на прохождение через каталог. Если каталог лишить этого права, то получаем два эффекта:
- не получится что-то сделать (создать, редактировать, удалить и т.д.) с тем, что находится в каталоге, независимо от того, какие права выставлены на объект с которым пользователь попытается что-то сделать. Не получится перейти в бесправный каталог. Если для каталога выставлено право на чтение, то можно просмотреть его содержимое, однако это не относится к подкаталогам.
- даже если у подкаталогов с правами все в порядке, то с ними и их содержимым так же ничего не получится сделать.
dp, благодарю за столь развернутое пояснение
Присоединяюсь к благодарности. Кое что новое почерпнул для себя!
Тема для новичков действительно нужная. Если будет желание я бы посоветовал добавить информацию где именно (имеется ввиду ftp клиенты и веб интерфейсы хостинга) нужно указывать и/или менять эти права.