Что означают права доступа к файлу обозначенные числом 762

Обновлено: 06.07.2024

Собственно, тема уже давно обсосана со всех сторон и любой неленивый человек с легкостью найдет всю нужную информацию, но… ХЗ, почему это “но” есть, но вопросы о правах доступа возникают с завидной регулярностью. Поэтому я попробую в тысячный раз изобрести велосипед и изложить основы прав доступа к файлам в *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 в Linux


Команда chmod, команда chown и команда chgrp.

Команда chmod

Команда chmod предназначена для изменения прав доступа файлов и директорий в Linux. Название команды произошло от словосочетания «change mode».

Синтаксис команды chmod следующий:

Разрешения можно задавать двумя способами:

Изменение прав доступа командой chmod

Запись прав доступа числом

В данном формате права доступа задаются не символами rwx, как описано выше, а трехзначным числом. Каждая цифра числа означает определенный набор прав доступа.

  • Первая цифра используется для указания прав доступа для пользователя.
  • Вторая цифра для группы.
  • Третья для всех остальных.

В таблице ниже приводятся все возможные комбинации разрешений rwx и соответсвующие им числа (которые используются в команде chmod):

ЧислоРазрешенияСимвольное обозначение
0разрешения отсутствуют---
1x — запуск--x
2w — изменение-w-
3x+w — запуск+изменение-wx
4r — чтениеr--
5r+x — чтение+запускr-x
6r+w — чтение+изменениеrw-
7r+w+x — чтение+изменение+запускrwx

Рассмотрим использование команды chmod с записью прав доступа числом на примере. Установим для файла права доступа 764:

Это означает (см. таблицу выше), что для файла myfile мы устанавливаем права доступа 7 6 4 , которые означают:

  • 7 — права для владельца-пользователя. Владелец файла может читать, изменять и запускать файл (r+w+x).
  • 6 — права для группы. Пользователи, которые принадлежат группе могут читать и изменять файл (r+w).
  • 4 — права для всех остальных. Все остальные могут только читать файл (r).

Если записать 764 с помощью символов (см. таблицу), то мы получим: «rwxrw-r-».

Команда chmod

В таблице ниже приведены некоторые часто используемые значения числовых значений прав доступа:

Числовое
обозначение
"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» – остальные (люди, которых просто заходят на сайт через браузер).

Права доступа CHMOD

Когда происходит соединение с сервером, он автоматически определяет – в какой категории пользователей вы состоите. К примеру, осуществляя подключение к серверу по 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, права доступа выглядят по-другому, :

Права доступа в FTP

Разрешения на действия с файлами и папками

Буквы означают действия: r = read (чтение), w = write (запись), x = execute (исполнение).

Какие права доступа дать файлам и папкам

Минимальные права, рекомендованные Кодексом Вордпресс:

Для некоторых файлов и папок можно установить более сильные ограничения:

Права доступа к файлам есть только на Linux и Unix серверах, на серверах Windows их нет.

Как изменить права доступа

1. Можно автоматически установить права доступа ко всем файлам и папкам в файле wp-config.php:

  • Не забудьте изменить права доступа к файлу wp-config.php на 400 или 440.

2. Зайдите в файл-менеджер на хостинг-панели:

Права доступа на хостинге Бегет

Нажмите правой кнопкой на папке или файле, выберите Изменить атрибуты:

Права доступа на хостинге Бегет

На других хостингах может быть другой интерфейс, но делается аналогично.

Права доступа через ftp клиент

Права доступа через ftp клиент

Поставьте галочки, числовое значение изменится автоматически, и наоборот.

find /путь/к/вашей/папке/ -type d -exec chmod 755 <> \;

Замените /путь/к/вашей/папке/ и /путь/к/вашему/файлу/ на свой адрес. В этом примере папка получила права доступа 755, файл получил права доступа 644.

Читайте также: