Что означают права доступа к файлу обозначенные числом 762
Собственно, тема уже давно обсосана со всех сторон и любой неленивый человек с легкостью найдет всю нужную информацию, но… ХЗ, почему это “но” есть, но вопросы о правах доступа возникают с завидной регулярностью. Поэтому я попробую в тысячный раз изобрести велосипед и изложить основы прав доступа к файлам в *NIX системах, а так же некоторые неочевидные тонкости при работе с ними.
Часть первая. Какие существуют права доступа.
Существуют три основных разновидности прав доступа: чтение (r), запись (w) и выполнение(x). Первые два, думаю, никаких вопросов не вызывают. А вот последнее для людей, привыкших к Windows станет сюрпризом. Дело в том, что в *NIX и Windows используются разные подходы к различению исполняемых (программ) и не исполняемых файлов (файлов данных). В Windows за это отвечают расширения файлов (exe, com, bat и некоторые другие воспринимаются как исполняемые, а все остальные - нет), а в *NIX - право на выполнение файла. То есть для одного пользователя один и тот же файл может являться выполняемым, а для другого - нет. Это может быть очень полезно, если администратору необходимо запретить простым юзерам пользоваться какой-то программой, но в то же время самому иметь возможность пользоваться ею.
Каждый файл в *NIX имеет владельца - обычно это пользователь, который его создал, и группу владельцев - ею обычно становится основная группа владельца файла. Соответственно, права доступа к файлу задаются отдельно для владельца, группы и всех остальных пользователей, ни являющихся владельцами файла, ни входящими в группу владельцев.
Часть вторая. Что значит 0755 или правила записи прав доступа.
Существует две основных формы записи прав доступа к файлам - числовая и символьная. Наибольшее распространение получила числовая форма, как наиболее краткая. Символьная используется тогда, когда важнее наглядность.
1) Числовая форма записи.
Это четырехзначное восьмеричное число. Первый знак кодирует особые биты доступа, о которых я сейчас говорить не стану, скажу лишь, что в 95% случаев вам достаточно оставить его равным 0, а три последующих - права доступа для владельца, группы и всех остальных соответственно. В такой записи право на чтение кодируется числом 4, запись - 2, исполнение - 1. Результирующее число получается путем сложения чисел разрешенных прав доступа. Например, число 6=4+2 - право на чтение и запись, выполнение запрещено, 5=4+1 - чтение и выполнение, 7=4+2+1 - полный доступ. Таким образом, чтобы дать владельцу право делать с файлом все, что угодно, а всем прочим - только читать и исполнять, ставят права доступа 0755 (владелец: 7=4+2+1, группа: 5=4+1, остальные: 5=4+1). Это типичные права доступа на исполняемые файлы обычных программ и скриптов. Для файлов данных чаще используют 0644, 0640 или 0600. В первом случае владелец сможет читать и писать в файл, остальные только читать; во втором - писать сможет только владелец, читать - только владелец и группа, все остальные доступа иметь не будут; третий случай самый крайний - владелец сможет читать и писать в файл, а все остальные доступа к нему иметь не будут.
2) Символьная форма записи.
В этом случае права доступа представляются как 9 символов r, w, x или дефис. Идут они в следующем порядке: rwxrwxrwx. Первые три отвечают за права доступа владельца, следующие - группы и последние - всех остальных. Чтобы показать, что кто-то из них не имеет доступа к той или иной опции, ее заменяют на символ дефиса. Таким образом запись 0755, запрещающая изменять файл всем, кроме владельца, в символьном представлении будет выглядеть так: rwxr-xr-x.
Часть третья. Особые случаи.
1) Права доступа к папкам.
По сути, папки являются особого рода файлами, внутри которых записан список файлов, лежащих в этих папках. Рассматривая их с такой точки зрения, легко понять, что, применительно к папкам, право на чтение дает возможность просмотра списка файлов в папке, а право на запись - этот список изменять (т. е. создавать и удалять файлы в этой папке). Не совсем очевидно лишь действие лишь права на исполнении. В данном случае оно определяет, может ли пользователь заходить в папку. Если лишить пользователя этого права, то он не сможет производить никакие манипуляции с файлами в этой папке. Например, при доступе к папке 0600, владелец сможет посмотреть содержимое папки, создать в ней файл, но перейти в эту папку или посмотреть содержимое лежащих в ней файлов он не сможет.
2) Кто может менять права доступа?
Права каждого отдельно взятого файла могут менять двое: его владелец и суперпользователь (root). При этом по умолчанию root имеет полный доступ к любому файлу. Нередко приходится сталкиваться, когда веб-сервер на хостинге работает от имени одного пользователя, а вебмастер - от другого. В итоге вебмастер нередко оказывается лишенным возможности редактировать файлы, созданные веб-сервером, и не может изменить права доступа так, чтобы эту возможность получить, поскольку владельцем файла является его создатель. Выходов из такой ситуации может быть два: первый - обратиться в техподдержку хостинга, второй - написать небольшой скрипт на php, который будет изменять права доступа на более широкие и запустить его от имени веб-сервера. Вот пример такого скрипта:
3) Внимание, лазейка!
Представим себе ситуацию: у вас есть файл с какими-то данными, которые читать должны все, а писать туда - только вы. Вы, не долго думая, ставите права доступа к файлу 0644 и живете припеваючи. Но в какой-то момент вы обнаруживаете, что в этом файле лежит совсем не то содержимое, которые вы туда записали. Как такое могло быть? А вот так: на папку, в которой лежал тот файл по каким-то причинам (по безалаберности или необходимости) права стояли, разрешающие всем желающим создавать и удалять файлы в этой папке. Злоумышленник же сделал копию вашего файла, затем удалил оригинал и записал на то же место под тем же именем свою копию. В результате этих манипуляций он оказался владельцем этого файла и смог выставить любые права доступа к нему, а так же модифицировать содержимое на свое усмотрение. Как такого избежать? Не давать права на запись в папку, содержащую этот файл, кому не надо и все будет отлично!
4) Наиболее полезные права доступа.
Ниже я перечислю наиболее часто применяемые права доступа. Это, безусловно, не все возможные варианты и не всегда оптимальные, но они подойдут для большинства случаев.
- 0777 - rwxrwxrwx - Полный доступ для всех. Как правило, используется для папок, куда должны иметь возможность писать все желающие. Часто такой доступ ставят на папки, в которые движок сайта загружает файлы, отправленные пользователями.
- 0755 - rwxr-xr-x - Право на чтение и исполнение для всех, право на запись для владельца. Как правило ставится на исполняемые файлы программ и системные или cgi скрипты.
- 0644 - rw-r–r– - Право на чтение для всех, право на запись для владельца. Обычно ставится на большинство файлов с неприватными данными или скрипты php, выполняемые при помощи mod_php.
- 0600 - rw——- - Право на чтение и запись для владельца, нет доступа для всех остальных. Обычно ставится на файлы с приватными данными.
- 0750 - rwx-r-x— - Право на чтение, запись и выполнение для владельца, право на чтение и выполнение для группы и нет доступа для всех остальных. Часто ставится на домашние папки пользователей, наряду с 0700.
- 0700 - rwx—— - Полный доступ для владельца, нет доступа для других. Как и 0750, часто ставится на домашние папки пользователей и папки с приватными данными, но является более жестким вариантом.
Надеюсь, эта статья поможет вам чуть больше освоится в такой нелегкой области, как *NIX B) Удачи!
Команда chmod, команда chown и команда chgrp.
Команда chmod
Команда chmod предназначена для изменения прав доступа файлов и директорий в Linux. Название команды произошло от словосочетания «change mode».
Синтаксис команды chmod следующий:
Разрешения можно задавать двумя способами:
Изменение прав доступа командой chmod
Запись прав доступа числом
В данном формате права доступа задаются не символами rwx, как описано выше, а трехзначным числом. Каждая цифра числа означает определенный набор прав доступа.
- Первая цифра используется для указания прав доступа для пользователя.
- Вторая цифра для группы.
- Третья для всех остальных.
В таблице ниже приводятся все возможные комбинации разрешений rwx и соответсвующие им числа (которые используются в команде chmod):
Число | Разрешения | Символьное обозначение |
---|---|---|
0 | разрешения отсутствуют | --- |
1 | x — запуск | --x |
2 | w — изменение | -w- |
3 | x+w — запуск+изменение | -wx |
4 | r — чтение | r-- |
5 | r+x — чтение+запуск | r-x |
6 | r+w — чтение+изменение | rw- |
7 | r+w+x — чтение+изменение+запуск | rwx |
Рассмотрим использование команды chmod с записью прав доступа числом на примере. Установим для файла права доступа 764:
Это означает (см. таблицу выше), что для файла myfile мы устанавливаем права доступа 7 6 4 , которые означают:
- 7 — права для владельца-пользователя. Владелец файла может читать, изменять и запускать файл (r+w+x).
- 6 — права для группы. Пользователи, которые принадлежат группе могут читать и изменять файл (r+w).
- 4 — права для всех остальных. Все остальные могут только читать файл (r).
Если записать 764 с помощью символов (см. таблицу), то мы получим: «rwxrw-r-».
В таблице ниже приведены некоторые часто используемые значения числовых значений прав доступа:
Числовое обозначение | "rwx"-обозначение | Описание |
---|---|---|
400 | -r-------- | Владелец файла может только читать файл. Для всех остальных все действия с файлом запрещены. |
644 | -rw-r--r-- | Все пользователи могут читать файл. Владелец может изменять файл. |
660 | -rw-rw---- | Владелец и группа могут читать и изменять файл. Для всех остальных все действия с файлом запрещены. |
664 | -rw-rw-r-- | Все могут читать файл. Владелец и группа могут изменять. |
666 | -rw-rw-rw- | Все могут читать и изменять файл. |
700 | -rwx------ | Владелец может читать, изменять и запускать файл. Для всех остальных все действия с файлом запрещены. |
744 | -rwxr--r-- | Все могут читать файл. Владелец может также изменять и запускать файл. |
755 | -rwxr-xr-x | Все могут читать и запускать файл. Владелец может также изменять файл. |
777 | -rwxrwxrwx | Все пользователи могут читать, изменять и редактировать файл. |
Запись прав доступа символами
Как вы можете видеть, в данном формате права доступа задаются символами rwx, но в синтаксисе используются и другие вспомогательные символы, например, математические операции «+» и «-» и такие символы как, например, «g» или «u».
Общий синтаксис можно записать примерно так:
Обозначения для владельцев файла следующие:
Обозначение | Описание |
---|---|
u | Владелец-пользователь. |
g | Группа. |
o | Все остальные. |
a | Вообще все. |
Математические операции означают следующее:
Оператор | Описание |
---|---|
+ | Добавляет к текущим правам доступа новое разрешение. |
- | Удаляет из текущих прав доступа определенное разрешение. |
= | Устанавливает полностью новые разрешения (предыдущие перезаписываются новыми). |
В одной команде можно перечислять владельцев и их разрешения через запятую (см. пример ниже).
Разрешаем владельцу (u) и группе (g) запускать файл (x).
Рекурсивное изменение прав доступа
Если необходимо изменить права доступа на все файлы в директории, включая вложенные директории, то для этого существует опция -R, что означает рекурсивное изменение прав доступа для директорий и их содержимого. Например, изменим права доступа у всех файлов в директории Mydir:
И еще один момент. Если пользователь не является владельцем файла, но ему нужно изменить права доступа у данного файла, то команду chmod необходимо выполнять с использованием sudo, например:
Видео-обзор команды chmod
Команда chown — изменение владельца и группы
Для изменения владельца и группы файла используется команда chown.
Для изменения владельца файла используется следующий синтаксис:
Например, установим для файла myfile нового владельца vasya:
Для изменения владельца и группы файла используется следующий синтаксис:
Например, установим для файла myfile нового владельца vasya и группу sambashare:
Команда chgrp — изменение группы
Есть еще одна команда — chgrp. Она позволяет изменить только группу. Например:
Резюме
В Linux у каждого файла есть права доступа — это разрешения, владелец и группа.
Разрешения задаются для владельца, группы и для всех остальных.
Есть три вида разрешений — r — чтение, w — изменение, x — запуск.
Термины Редактор: Дмитрий Сокол 12343 5 мин АудиоЧто такое CHMOD?
Аббревиатура CHMOD обозначает право доступа, представляющее собой набор символов, сообщающие серверу - кто и какие действия может совершать с соответствующим каталогом или файлом. В большинстве случаев право доступа определяет следующие действия: чтение, запись, исполнение.
Теория
Большая часть серверов функционирует на базе UNIX, именно поэтому мы подробно познакомимся с установкой прав доступа для таких серверов. В системах UNIX принято разделение всех пользователей на три основные категории:
- «user» – владелец файла;
- «group» – люди, которым владелец дал право доступа через FTP;
- «world» – остальные (люди, которых просто заходят на сайт через браузер).
Когда происходит соединение с сервером, он автоматически определяет – в какой категории пользователей вы состоите. К примеру, осуществляя подключение к серверу по FTP, вы входите, как владелец сайта, используя свое имя пользователя, поэтому сервер причисляет вас к категории «user». Другие же пользователи, выполняя подключение по FTP, будут причислены к «group». Когда посетители вашего сайта попадают на него через свой собственный браузер, то они попадают в категорию «world».
После определения – к какой из трех основных групп относится пользователь, он получает право на выполнение действий с объектами. Проще говоря, пользователь может прочитать, записать либо выполнить файл.
Для того чтобы посмотреть каталог, он должен иметь атрибут исполнения, а для того чтобы просмотреть содержимое каталога, он должен быть читаемым (иметь атрибут чтения). Чтобы создать новый каталог или файл в уже существующем каталоге, нужно иметь право на выполнение записи. Поэтому чтобы осуществлялось выполнение приложения либо скрипт, нужно ставить на каталог атрибут выполнения и чтения.
Практика
Перейдем к практическому закреплению изложенного материала. Мы знаем, что существует три типа действий с объектом (выполнение, чтение, запись) и три основные группы пользователей (user, group, world). Права на файл или папку задаются тремя цифрами (например 755). Указанная в обозначении первая цифра устанавливает права для категории «user», вторая – для «group» и третья – для «world». Чтобы распределить права для конкретных групп, приняты следующие цифровые обозначения:
1 – execute (право на выполнение)
2 – write (право выполнять запись)
4 – read (право осуществлять чтение)
Выполняя сложение цифр, можно установить право на некоторые действия.
К примеру:
3(2+1) устанавливается доступ на запись и выполнение;
5(4+1) устанавливается доступ на чтение и выполнение;
6(4+2) устанавливается доступ чтение и запись;
7(4+2+1) устанавливается доступ на чтение, запись и выполнение.
В итоге, если мы укажем права 755, это будет означать, что User (владелец сайта) может читать, записывать и выполнять (4+2+1=7), Group (люди, которым владелец дал доступ по FTP) могут читать и выполнять (4+1=5), World (обычные пользователи, которые видят сайт через браузер) могут читать и выполнять (4+1=5).
Всего существует восемь вариантов сочетаний:
0 – полный запрет
1 – выполнение
2 – запись
3 – запись, выполнение
4 – чтение
5 – чтение, выполнение
6 – чтение, запись
7 – чтение, запись, выполнение
Права CHMOD в цирах и буквах
Одни и те же права можно указывать как цифрами (вы научились это делать в прошлом абзаце), так и буквами. Вот соответствующая таблица:
Права доступа определяют, кто может получить доступ для чтения, записи или изменения файлов и папок на сервере.
Если у файлов на сервере не установлены соответствующие права, то злоумышленник может получить доступ к файлам и сайту.
В этой статье вы узнаете о правах доступа, и как их использовать для увеличения безопасности сайта.
Установка достаточных прав не поможет спастись от всех атак, но сделает сайт гораздо более защищенным. Используйте этот способ защиты сайта вместе с другими способами.
Что такое права доступа
Права доступа состоят из 3-х цифр:
Каждой цифре соответствует действие или несколько действий:
Например, право доступа 644 означает, что у Пользователя есть право читать и записывать в файл информацию, у Группы есть право просматривать файл, и у Мира есть право просматривать файл.
Вы можете запомнить только цифры, соответствующие чтению, записи и исполнению, остальные цифры (действия) равняются сумме этих действий.
Права доступа к этому файлу будут 764.
Если вы смотрите на файлы через FTP или SSH, права доступа выглядят по-другому, :
Буквы означают действия: r = read (чтение), w = write (запись), x = execute (исполнение).
Какие права доступа дать файлам и папкам
Минимальные права, рекомендованные Кодексом Вордпресс:
Для некоторых файлов и папок можно установить более сильные ограничения:
Права доступа к файлам есть только на Linux и Unix серверах, на серверах Windows их нет.
Как изменить права доступа
1. Можно автоматически установить права доступа ко всем файлам и папкам в файле wp-config.php:
- Не забудьте изменить права доступа к файлу wp-config.php на 400 или 440.
2. Зайдите в файл-менеджер на хостинг-панели:
Нажмите правой кнопкой на папке или файле, выберите Изменить атрибуты:
На других хостингах может быть другой интерфейс, но делается аналогично.
Поставьте галочки, числовое значение изменится автоматически, и наоборот.
find /путь/к/вашей/папке/ -type d -exec chmod 755 <> \;
Замените /путь/к/вашей/папке/ и /путь/к/вашему/файлу/ на свой адрес. В этом примере папка получила права доступа 755, файл получил права доступа 644.
Читайте также: