chmod и с чем его едят
7 июня 2008
Версия для печати
Последнее время мне все чаще задают новички вопрос о том, что такое chmod и какие права должны быть на файл. Об этом не мало и подробно уже написано, но и я решил написать пару слов об этой преполезнейшей вещице разделения прав доступа.
Что же это такое? chmod - это команда, позволяющая устанавливать права доступа на файлы и каталоги для разграничения этих самых прав.
Существует символьное и цифровое представление прав доступа. Пример, rwxr-xr-x или 755 (в данном случае символ "-" - это не минус, а прочерк, пустое место). "Как же их "пересчитывать", задавал я себе когда-то вопрос и долго не мог найти никакой толковой информации по этому поводу. Тогда еще не было wikipedia и гугл многое найти еще не мог. Яндекс же скромно отмалчивался.
Но сначала надо разобраться, почему именно такое представление имеют права доступа в Unix-like ОС.
Полные права на объект представляются как RWXRWXRWX. Т.е. имеют три группы по RWX.
1-я группа - владелец, т.е. пользователь, который создал файл (обычно это так, но это конечно всегда можно изменить).
2-я группа - это права для группы (например, юзер vasya, группа users. Вот разрешения для группы users тут и указываются. Группа может не принадлежать владельцу, т.е. владелец будет в группе users2, а права будут установлены для группы users).
3-я группа - все остальные пользователи.
Все просто и понятно. Далее не намного сложнее:
R - Read
W - Write
X - eXecute (для файлов) или search (для каталогов)
Таким образом rwxr-xr-x - это все права для владельца, право чтения/запуска(листинга каталога) для группы и остальных пользователей.
Все просто. Далее разберем как пересчитать это дело в цифровое представление прав.
В принципе, тут достаточно привести такие равности:
R = 4
W = 2
X = 1
Путем сложения в каждой группе и переводим rwxr-xr-x: 4+2+1=7, 4+1=5. Получаем 755.
Или же 644 = rw-r--r--. Вот так все просто.
Популярность: 65% []
И не забываем подписываться на RSS. ;)



Да, chmod дело такое, не сразу понимаешь. Я тоже долго искал на тему “что это за цифры!?” :-)
все же как ни ругают винду, а в ней прав можно раздать на файлы намного больше и детальнее ДЛЯ КАЖДОГО пользователя.
а таперь по теме:
хотелось бы видеть все с примерами использования (включая различные ключи. например: chmod -R 777 папка) как в МАНАх, но маны обычно написаны “не для людей” и в них разобраться тяжело бывает
еще не помешало бы сразу сюда добавить и описание chown (а можно и отдельно)
lecactus, чем больше прав, тем сложнее в них разобраться… А вообще, тут гибкость весьма немаленькая открывается… сам подумай…
Про более развернутый пост - уже была идея. Когда оформлю - пока не знаю… Там и chown будет рассмотрен.
Да… И еще забыл… В линуксе есть SELinux… Там все гораздо навороченее, но я его не пользую в виду отсутствия необходимости…
Я не считаю в уме, а всегда пользуюсь мнемониками вроде:
chmod u+x,g-w file
или
chmod ug=rw,o= file
Я далеко не новечок, но интересно…
Да, действительно интересно, о некотором я не знал…