Линукс изменить права во всех папках

Команда chmod Linux

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

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

Команда chmod Linux

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

chmod 766 file
ls — l file

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

Читайте также:  Linux mint gpg key

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

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

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

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

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

Выводы

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Как установить права на файлы/папки рекурсивно в Linux

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

Итак, для смены прав будет использоваться всё та же команда chmod, однако к ней будет добавлен параметр –R, который собственно и указывает на то, что необходимо сменить права не только самой директории, но и на вложенные папки и файлы.

Меняем права на директорию /home/qwerty, а так же на всё содержимое директории.

Читайте также:  List command in linux to list directories

Цифра 755 содержит три атрибута, которые можно растолковать так:

7 — rwx — читать, писать, выполнять
6 — rw- — читать, писать
5 — r-x — читать, выполнять
4 — r— — читать
3 — -wx — писать, выполнять
2 — -w- — писать
1 — —x — выполнять
0 — — — ничего нельзя делать

Три цифры – три отдельных атрибута, первая – права для пользователя, вторая – права для группы, третья – права для остальных.

Кроме всего этого, можно по аналогии, как и с правами, сменить владельца каталогов и файлов в директории. Для этого достаточно воспользоваться командой chown с параметром –R.

chown –R qwerty:users /home/qwerty

Данная команда сменит владельца директории /home/qwerty, а так же все вложенные директории и файлы.

Источник

Оцените статью
Adblock
detector