Linux chmod 777 рекурсивно

Команда chmod Linux

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

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

Команда chmod Linux

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Я не буду приводить много примеров, так как там и так все более-менее понятно после пояснения правил создания выражений установки прав. Сначала самый частый случай — разрешить выполнения скрипта владельцу:

Читайте также:  Как исправить ошибку 0x80073712 при обновлении до windows 10 20h2

Или можно воспользоваться цифровой записью:

chmod 766 file
ls — l file

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

И снова проверяем:

Дальше разрешим только чтение всем, кроме владельца:

chmod 744 file
ls -l file

Или отберем все права:

chmod ugo-rwx file

Файлы с правами 000 недоступны никаким пользователям, кроме суперпользователя и владельца. Вернем права обратно:

chmod 755 file
ls -l file

Такая же ситуация с файлами, владельцем которых вы не являетесь, если вы хотите изменить их права — используйте sudo. Из модификаторов прав вы можете конструировать любые последовательности, я думаю тут нет смысла разбирать их все. Для того чтобы поменять права на все файлы в папке используйте опцию -R:

chmod -R ug+rw dir
ls -l dir/

Также вы можете смотреть подробную информацию про вносимые изменения, например:

chmod -Rv ug+rw dir

Выводы

В этой небольшой статье была рассмотрена команда chmod linux. Она очень часто используется наряду с такими командами, как chown и umask для управления правами. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

Что означает chmod 777

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

В этой статье объясняется базовая модель разрешений Linux и что означают числа, соответствующие разрешениям.

Понимание прав доступа к файлам в Linux

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

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

  • Владелец файла.
  • Члены группы.
  • Остальные (все остальные).

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

  • Разрешение на чтение.
    • Файл доступен для чтения. Например, если установлено разрешение на чтение, пользователь может открыть файл в текстовом редакторе.
    • Можно просмотреть содержимое каталога. Пользователь может вывести список файлов внутри каталога с помощью команды ls .
  • Разрешение на запись.
    • Файл можно изменить или модифицировать.
    • Содержимое каталога может быть изменено. Пользователь может создавать новые файлы , удалять существующие , перемещать файлы , переименовывать файлы и т. Д.
  • Разрешение на выполнение.
    • Файл можно запустить.
    • В каталог можно войти с помощью команды cd .

Права доступа к файлам можно просмотреть с помощью команды ls . Вот пример:

Первый символ показывает тип файла. Это может быть обычный файл ( — ), каталог ( d ), символическая ссылка ( l ) или любой другой специальный тип файла.

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

Номер разрешения

Разрешение файла может быть представлено в числовом или символьном формате. В этой статье мы сосредоточимся на числовом формате.

Номер разрешения может состоять из трех или четырех цифр от 0 до 7.

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

Читайте также:  Windows ce cityguide активация

Разрешения на запись, чтение и выполнение имеют следующее числовое значение:

  • r (читать) = 4
  • w (написать) = 2
  • x (выполнить) = 1
  • нет разрешений = 0

Цифра разрешений определенного класса пользователей — это сумма значений разрешений для этого класса.

Каждая цифра номера разрешений может быть суммой 4, 2, 1 и 0:

  • 0 (0 + 0 + 0) — Нет разрешения.
  • 1 (0 + 0 + 1) — только разрешение на выполнение.
  • 2 (0 + 2 + 0) — только разрешение на запись.
  • 3 (0 + 2 + 1) — права на запись и выполнение.
  • 4 (4 + 0 + 0) — разрешение только на чтение.
  • 5 (4 + 0 + 1) — разрешение на чтение и выполнение.
  • 6 (4 + 2 + 0) — права на чтение и запись.
  • 7 (4 + 2 + 1) — разрешение на чтение, запись и выполнение.

Например, если номер разрешения установлен на 750, это означает, что владелец файла имеет разрешения на чтение, запись и выполнение, группа файла имеет разрешения на чтение и выполнение, а другие пользователи не имеют разрешений:

  • Владелец: rwx = 4 + 2 + 1 = 7
  • Группа: rx = 4 + 0 + 1 = 5
  • Другое: rx = 0 + 0 + 0 = 0

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

  • setuid = 4
  • setgid = 2
  • липкий = 1
  • без изменений = 0

Следующие три цифры имеют то же значение, что и при использовании трехзначного номера. Если первая цифра равна 0, ее можно опустить, а режим можно представить тремя цифрами. Числовой режим 0755 совпадает с 755 .

Чтобы просмотреть права доступа к файлу в числовом (восьмеричном) представлении, используйте команду stat :

Никогда не используйте chmod 777

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

Например, если вы рекурсивно измените права доступа для всех файлов и подкаталогов в каталоге /var/www на 777 , любой пользователь в системе сможет создавать, удалять или изменять файлы в этом каталоге.

Если у вас возникают проблемы с разрешениями на вашем веб-сервере, вместо того, чтобы рекурсивно устанавливать разрешение на 777 , измените право собственности на файл на пользователя, запускающего приложение, и установите права доступа к файлу на 644 и права доступа к каталогу на 755 .

Владение файлом можно изменить с помощью команды chown а разрешения — с помощью команды chmod .

Допустим, у вас есть приложение PHP на вашем сервере, работающее от имени пользователя «linuxize». Чтобы установить правильные разрешения, вы должны запустить:

Только root, владелец файла или пользователь с привилегиями sudo могут изменять права доступа к файлу. Будьте особенно осторожны при использовании chmod , особенно при рекурсивном изменении разрешений.

Выводы

Если вы управляете системой Linux, очень важно знать, как работают разрешения Linux.

Вы никогда не должны устанавливать rwxrwxrwx доступа 777 ( rwxrwxrwx ) для файлов и каталогов. 777 означает, что с этими файлами может делать что угодно.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Источник

Команда chmod в Linux


Команда 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 Вообще все.

Математические операции означают следующее:

Оператор Описание
+ Добавляет к текущим правам доступа новое разрешение.
Удаляет из текущих прав доступа определенное разрешение.
= Устанавливает полностью новые разрешения (предыдущие перезаписываются новыми).

В одной команде можно перечислять владельцев и их разрешения через запятую (см. пример ниже).

В данном случае мы не используем обозначения для владельцев, а значит разрешения устанавливаются для всех пользователей. «+x» означает — установить разрешение на запуск (x) файла для всех пользователей. Это эквивалентно выполнению команды: chmod a+x myfile1 .

Здесь используется обозначение g и символ равенства «=». Это означает, что для группы мы устанавливаем права доступа на чтение и запись файла (rw).

Для владельца файла (u) мы удаляем разрешение на изменение (w) файла.

Разрешаем владельцу (u) и группе (g) запускать файл (x).

Это как раз тот случай, когда мы перечисляем владельцев через запятую и устанавливаем для них разрешения. Для владельца файла (u) мы разрешаем запуск файла, для группы (g) мы запрещаем изменять файл, для всех остальных (o) мы запрещаем читать файл.

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

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

И еще один момент. Если пользователь не является владельцем файла, но ему нужно изменить права доступа у данного файла, то команду chmod необходимо выполнять с использованием sudo, например:

Видео-обзор команды chmod

Команда chown — изменение владельца и группы

Для изменения владельца и группы файла используется команда chown.

Для изменения владельца файла используется следующий синтаксис:

Например, установим для файла myfile нового владельца vasya:

Для изменения владельца и группы файла используется следующий синтаксис:

Например, установим для файла myfile нового владельца vasya и группу sambashare:

Команда chgrp — изменение группы

Есть еще одна команда — chgrp. Она позволяет изменить только группу. Например:

Резюме

В Linux у каждого файла есть права доступа — это разрешения, владелец и группа.

Разрешения задаются для владельца, группы и для всех остальных.

Есть три вида разрешений — r — чтение, w — изменение, x — запуск.

Чтобы изменить разрешения у файла используется команда chmod.

Чтобы изменить владельца или группу используется команда chown.

Чтобы изменить группу используется chgrp.

Источник

Читайте также:  Какую функцию главного меню windows выполняет команда документы
Оцените статью