2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Ubuntu chmod 777 на папку

Ubuntu chmod 777 на папку

Права:

Добавить Забрать
+r -r
+w -w
+x -x

(Изначальное значение прав доступа файла file – rwxrwxrwx – полный доступ для всех) Отмена разрешения на выполнение файла для всех пользователей и групп:

Отмена записи в файл группой и остальными пользователями:

Разрешение выполнения файла владельцем:

Предоставление группе тех прав доступа, которыми владеет владелец файла:

Отмена чтения и запись в файл пользователям группы и другим пользователям:

Базовые понятия прав доступа к файлам и папкам

Если же все пустить это дело на самотек и не заморачиваться с установкой нужных привилегий, то вероятность взлома вашего ресурса или заражения его вредоносным кодом будет очень велика. Хорошо, если вы осуществляли резервное копирование (бэкап) всех ваших данных, а если нет?!

Поэтому лучше сразу же, не откладывая в долгий ящик, произвести настройку и изменение Чмод для всех важных объектов вашего движка, исходя из принципа минимализма. Т.е. давать объектам минимально необходимые для корректной работы вебсайта права.

Давайте сначала разберемся в сути вопроса, чтобы понимать, что именно и каким образом мы настраиваем. Итак, приступим. Права доступа разделяются по отношению к файлам и к директориям. Обозначаются они одинаково, но означают немного разное.

В свою очередь, по отношению к файлам возможно:

  • r — право на чтение данных.
  • w — на изменение содержимого (запись – только изменение содержимого, но не удаление).
  • x — на исполнение файла.

Остановимся чуть подробнее на возможности исполнения файла. Дело в том, что в linux любой файлик может быть исполнен. Является ли он исполнительным — определяется не по его расширению (понятие расширение отсутствует в файловой системе Unix), а по правам доступа Chmod. Если у какого-либо файлика установлено право на исполнение “X”, то это означает, что его можно запустить на выполнение.

По отношению к директориям возможно:

  1. r — право на чтение директории (можно прочитать содержимое директории, т.е. получить список объектов, находящихся в ней)
  2. w — на изменение содержимого директории (можно создавать и удалять объекты в ней, причем, если вы имеете право на запись, то удалять вы сможете даже те файлы, которые вам не принадлежат)
  3. x — на вход в директорию (оно всегда проверяется в первую очередь, и даже если вы имеете все нужные привилегии на объект, который закопан глубоко в цепочке каталогов, но не имеете атрибут “X” для доступа хотя бы к одной директории на пути к этому файлике, то к нему вы так и не пробьетесь )

В системах Линукс все это раздает главный администратор компьютера, доступ к которому он получает путем ввода пароля. И если большинство объектов будут иметь права только для чтения, то вирусам на таком компьютере делать будет практически нечего, т.к. они не смогут себя туда ни записать, ни затем исполниться. Именно этого результата нам нужно добиться, выставляя нужные Chmod на объекты нашего сайта.

Привилегии для групп пользователей

Сами привилегии подразделяются на три категории в зависимости от того, кто обращается к объекту:

  • «user» — u (непосредственно владелец файлика)
  • «group» — g (член той же группы, к которой принадлежит владелец)
  • «world» — o (все остальные)

Сервер определяет, к какой группе пользователей вас отнести в момент подключения вас к серверу. Когда вы, например, подключаетесь к серверу по протоколу FTP, то вы входите под своим именем пользователя (и паролем), и тогда сервер относит вас к группе «user» («u)».

Прочие пользователи, которые тоже подключаются по FTP к серверу, будут отнесены к группе «group» («g»), а посетитель, который приходит к вам на вебсайт, используя свой браузер, попадает в группу «world» («o»).

Вариации трех возможных значений «r», «w» и «x» для трех категорий «u», «g» и «o» и определяют Chmod к файлам. Если не задана какая-то категория, то она заменяется знаком дефисом «-». Привилегии указываются последовательно в заданном порядке:

  1. сначала права для владельца — «u»
  2. затем для группы — «g»
  3. и в конце — для всех остальных — «o»

После того, как сервер отнесет посетителя к определенной группе, он предоставляет ему права на действия с объектами, после чего посетитель сможет прочитать, записать или выполнить файл (в зависимости от того, что разрешено делать с данным объектом его группе).

Чтобы посмотреть содержимое каталога, он должен иметь атрибут чтения «r» (для той группы, к которой сервер отнес посетителя). Чтобы создать файлик или папку в уже существующей необходимо, чтобы этот существующий каталог имел атрибут на запись «w».

Для наглядности давайте разберем пример, где владелец файла («user» — «u») имеет все права: на чтение, запись в него и исполнение, а все остальные пользователи только привилегию на чтение. Запись таких Chmod будет выглядеть так: «rwx r— r—».

Рассмотрим ее в деталях: «rwx» (эта запись задает права на объект для владельца — «u»), «r—» (эта запись задает права на тот же объект, но в случае, если посетитель отнесен сервером к группе — «g»), «r—» (эта запись задает привилегии на объект для всех остальных пользователей — «o»).

Чем отличаются права файлов и папок

Получается, что существует три группы пользователей и три возможных действия с объектами. Еще не запутались? Разложим все сказанное выше по полочкам в виде табличек. Сначала наглядно посмотрим, чем они отличаются:

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

Зачем настраивать права доступа?

Права доступа всегда необходимо назначать и разграничивать – это крайне важный момент обеспечения безопасности вашей Linux-системы. В случае, когда хакеру удастся получить доступ к одному из ваших пользователей, грамотно настроенные права доступа к файлам и каталогам не дадут ему возможности сделать много неприятностей. Иными словами, настройка прав доступа даст вам возможность максимально ограничить ваши данные от попадания в чужие руки (естественно, если речь не идет о root или sudo пользователях без ограничений, которые могут изменять любые права под себя).

Как смотреть права доступа?

Перед тем, как перейти к самому процессу изменения прав, нужно понять, как смотреть уже имеющиеся права у файлов и каталогов. Делать это можно при помощи команды ls и ключа –l.

После ввода этой команды вы увидите содержимое текущего каталога, а также информацию о владельце и правах доступа.

Пример отобразившейся информации:

Разберемся, что означают эти строки.

Первая буква в выводе обозначает тип файла. Самые популярные обозначения, которые вы будете встречать чаще всего, это:

  • — обычный файл;
  • d – каталог.

Помимо них есть и другие обозначения:

  • b — файл блочного устройства;
  • c — файл символьного устройства;
  • s — доменное гнездо (socket);
  • p — именованный канал (pipe);
  • l — символическая ссылка (link).

Три следующие буквы, которые идут после первой, означают те права доступа, которые имеет пользователь-владелец этого файла или каталога. Расшифровываются они следующим образом:

  • r – read – право на чтение;
  • w – write – право на запись (изменение, в том числе и удаление);
  • x – execute – право на выполнение этого файла (если речь о каталоге, то просмотр оглавления и поиск в нем);
  • (прочерк) вместо одной из букв говорит о том, что соответствующего права у вас нет.

Поэтому по записи

можно сказать о том, что это обычный файл, владельцем которого является пользователь root, и он может читать и изменять этот файл.

Следующие три буквы, которые идут после определения прав для владельца файла или каталога, означают права доступа для группы, которая владеет этим файлом.

В рассматриваемом нами примере выше у группы root будут права только на чтение файла.

Наконец, последние три буквы – это права доступа для всех остальных пользователей и групп, в том числе для абсолютно посторонних людей (если доступ в каталоги и файлы открыт на других ресурсах).

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

Права доступа имеют всего 3 опции − чтение, запись и запуск на выполнение, устанавливаемые для владельца, группы и прочих пользователей. Для папки запуск на выполнение означает просмотр содержимого − списка файлов и вложенных папок.

Права можно задавать либо буквами r (read), w (Write) и x (eXecute), либо в двоичной системе (точнее в восьмеричной с использованием цифр от 0 до 7, но основано на двоичной системе).

Праву на чтение (r) соответствует значение 4, записи (w) − 2 и выполнению/просмотру файлов (x) − 1. Комбинируя эти значения, можно получать разные права. Например:

  • 6 (4 + 2) − чтение и запись в файл, либо чтение и запись файлов из папки, но для конкретных файлов права доступа определяются отдельно;
  • 5 (4 + 1) − чтение и выполнения файла, либо чтение из папки и просмотр её содержимого. Снова же, это не означает автоматического доступа к для вложенным объектам, а определяется их правами;
  • 7 (4 + 2 + 1) − полный доступ, чтение, запись файла или файлов в папку и выполнение файла или просмотр содержимого папки.

Первыми задаются права доступа для владельца, затем для группы и в конце для всех прочих.

Обычно для документов и файлов данных устанавливаются права 644 или 664. Это означает, что владелец может читать и изменять файл (включая удаление), члены группы в первом случае только читать, а во втором изменять, а все прочие − только читать.

Для исполняемых файлов и папок обычно задаются права 755 или 775. Значения те же, что и в предыдущем абзаце плюс присутствует право на выполнение или просмотр списка вложенных объектов.

Если задавать права доступа буквами, то указываются нужные права в виде rwx, а то, что нужно пропустить, заменяется дефисом. То есть, 644 соответствует rw-r—r—, а 755 − rwxr-xr-x.

Использовать цифры или буквы − не имеет значения, это дело привычки. Хотя, при использовании букв можно быстро дать или убрать право на запись, указав «+w» или «-w», что проще, чем вычислять в голове числовые значения. Лично я использую оба способа.

Команда chmod Linux

Эта команда имеет типичный для команд linux синтаксис, сначала команда, затем опции, а в конце файл или папка, к которой ее нужно применить:

$ chmod опции права /путь/к/файлу

Сначала рассмотрим какими бывают права доступа linux и как они устанавливаются. Пред этим рекомендую прочитать статью про права, ссылка на которую есть выше. Есть три основных вида прав:

  • r — чтение;
  • w — запись;
  • x — выполнение;
  • s — выполнение от имени суперпользователя (дополнительный);

Также есть три категории пользователей, для которых вы можете установить эти права на файл linux:

  • u — владелец файла;
  • g — группа файла;
  • o — все остальные пользователи;

Синтаксис настройки прав такой:

группа_пользователей действие в ид_прав

В качестве действий могут использоваться знаки «+» — включить или «-« — отключить. Рассмотрим несколько примеров:

  • u+x — разрешить выполнение для владельца;
  • ugo+x — разрешить выполнение для всех;
  • ug+w — разрешить запись для владельца и группы;
  • o-x — запретить выполнение для остальных пользователей;
  • ugo+rwx — разрешить все для всех;

Но права можно записывать не только таким способом. Есть еще восьмеричный формат записи, он более сложен для понимания, но пишется короче и проще. Я не буду рассказывать как считать эти цифры, просто запомните какая цифра за что отвечает, так проще:

  • — никаких прав;
  • 1 — только выполнение;
  • 2 — только запись;
  • 3 — выполнение и запись;
  • 4 — только чтение;
  • 5 — чтение и выполнение;
  • 6 — чтение и запись;
  • 7 — чтение запись и выполнение.

Права на папку linux такие же, как и для файла. Во время установки прав сначала укажите цифру прав для владельца, затем для группы, а потом для остальных. Например, :

  • 744 — разрешить все для владельца, а остальным только чтение;
  • 755 — все для владельца, остальным только чтение и выполнение;
  • 764 — все для владельца, чтение и запись для группы, и только чтение для остальных;
  • 777 — всем разрешено все.

Каждая из цифр не зависит от предыдущих, вы вбираете именно то, что вам нужно. Теперь давайте рассмотрим несколько опций команды, которые нам понадобятся во время работы:

  • -c — выводить информацию обо всех изменениях;
  • -f — не выводить сообщения об ошибках;
  • -v — выводить максимум информации;
  • —preserve-root — не выполнять рекурсивные операции для корня «/»;
  • —reference — взять маску прав из указанного файла;
  • -R — включить поддержку рекурсии;
  • —version — вывести версию утилиты;

Теперь, когда вы знаете опции и как настраиваются права доступа chmod, давайте рассмотрим несколько примеров как работает команда chmod linux.

Значения

Давайте проясним, какие значения могут принимать атрибуты CHMOD и что они обозначают.

Значения CHMOD могут быть только цифровые. Обычно это 3 обязательные цифры и один дополнительный.

CHMOD= rwxs

  • r — чтение;
  • w — запись;
  • x — выполнение;
  • s — выполнение от имени superuser.

Для каждой группы пользователей, перечисленных выше, указываются свои права CHMOD.

Например, но фото:

На фото вы видите итоговую цифру: 644 и 777. Это и есть итоговое значение CHMOD для разных групп пользователей.

Значения CHMOD могут быть от 444 (всё всем запрещено) до 777 (всё всем разрешено).

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 – чтение, запись, выполнение

Как установить права доступа в Linux

Доступ к файлам ОС

4 минуты чтения

При решении целого ряда задач администратору требуется изменить уровень доступа, который управляется командой chmod (change mode – изменить режим). Разберём подробнее как именно происходит изменение прав и какие ещё команды могут пригодиться Вам в этом процессе.

Введение

Структура разрешений для файлов и директорий в Linux являет собой матрицу 3 на 3 – есть три различных уровней доступа (read, write и execute – чтение, запись и выполнение), которые доступны для трёх типов пользователей – владельца файла, группы и others – «остальных».

Для наглядности, посмотрите на вывод команды ls -l

В примере выше, пользователь — root, обладает правами чтения и записи, группа имеет права чтения, также, как и others.

  • r (read) — разрешение на чтение содержимого файла, в случае директории – право на просмотр файлов и поддиректорий
  • w (write) — разрешение на запись в файл, для директории – возможность создания файлов в директории и создание поддиректорий
  • x (execute) — разрешение на запуск файла в виде программыскрипта, для директории – допуск в директорию

Изменение уровня доступа

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

  • r (read) — 4
  • w (write) — 2
  • x (execute) — 1

Для получения комбинаций прав – числа нужно сложить. Для уровня доступа rwx число будет равным 7 (4+2+1). Использовать можно также и буквенные обозначения, как удобнее конкретно для вас, но с численным представлением команды получаются короче 🙂 При изменении уровня доступа у файла нужно знать следующее:

  • Первое число — права для юзера
  • Второе число — права для группы
  • Третье число — права для others

К примеру, дадим права на чтение для пользователя, чтение для группы и нулевой уровень доступа для остальных:

Права на чтение, запись и исполнение для пользователя, группы и остальных:

И соответственно, так далее, в зависимости от ваших нужд.

Использование umask – настройка уровня доступа по умолчанию

По умолчанию значение umask — 0022, которое определяет права доступа по дефолту для нового файла или директории. Для файла разрешение по умолчанию равно 0666, для директории — 0777. Значение маски вычитается из этих дефолтных значений и получается финальное значение.

У файла по умолчанию – 0666, то есть права rw-rw-rw-, но с учетом дефолтной маски 0022, файл будет создан со значением 0644 – rw-r—r—.

В случае директории результирующим значением будет 0755, то есть rwx-r-x-r-x.

С помощью команды umask xxxx всегда можно изменить значение маски по умолчанию. К примеру:

Как видно, права изменились с rw-r—r—для нового файла на –rw——-.

Несколько полезных примеров использования chmod

Ниже приведён список нескольких вариантов использования команды chmod — во многих случаях они очень сильно облегчают процесс настройки вашего сервера.

На всякий случай помните, что пользователь имеет обозначение u, группа g и остальные — o. Если же необходимо изменение прав сразу у всех вышеупомянутых сущностей – используйте обозначение a.

  • chmod u+x %имяфайла% — добавление права выполнения только для пользовательского уровня, то есть добавление права execute для user;
  • chmod u+r,g+x %имяфайла% — добавление прав чтения для юзера и исполнения для группы;
  • chmod u-rx %имяфайла% — модификатор используется для того, чтобы убрать какое-то разрешение, в данном случае – для пользователя остается только право записи в файл;
  • chmod a+rx %имяфайла или директории% -добавление права выполнение и чтения для юзера, группы и остальных – то есть вообще все могут исполнять этот файл;
  • $ chmod —reference=%имяфайла1% %имяфайла2% — установка прав доступа для файла1 равными правам доступа у файла2;
  • chmod -R 755 %имядиректории%/ — рекурсивное изменение прав доступа для всех файлов и подкаталогов в директории;
  • chmod u+X * -изменение прав доступа только для подкаталогов, у файлов в главной директории уровень прав доступа останется неизменным;
  • Права доступа в Linux
  • chmod в линукс и его применения
  • 370
  • Поделиться

    Безопасность и права доступа

    Помните, что неправильная установка прав доступа может привести к сбоям в работе системы или отдельных ресурсов. Кроме того, может создать большие проблемы с безопасностью. Поэтому надо анализировать и читать документацию. Особое внимание следует уделить этому, прежде чем вы можете установить права 777, так как они позволяют любому пользователю создавать, редактировать и исполнять файлы в каталоге.

    Многие злоумышленники для взлома сайтов и других сетевых ресурсов является халатность пользователей, которые по ошибке оставить закон, который позволяет загрузить и выполнить любой скрипт или приложение на сервере.

Ссылка на основную публикацию
Статьи c упоминанием слов:

Adblock
detector