- Инструкции
- Командная строка Linux: краткий курс для начинающих
- Перенаправление ввода/вывода в Linux
- Работа с файлами и каталогами в Linux
- Как сгенерировать SSH-ключ для доступа на сервер
- Как установить и настроить веб-сервер Apache
- Руководство по написанию скриптов в Linux Bash
- Введение в Git: настройка и основные команды
- Как установить MySQL на Windows
- Как установить и использовать MySQL Workbench
- Создание нового пользователя и настройка прав в MySQL
- Команда chmod Linux
- Команда chmod Linux
- Примеры использования chmod
- Выводы
- Ubuntu Documentation
- Права доступа в системе Linux
- Команда chmod
- Символьная форма прав доступа
- Числовая форма прав доступа
- Примеры
- Символьная форма
- Команда chown
- Команда chgroup
Инструкции
27 сентября 2021
Командная строка Linux: краткий курс для начинающих
27 сентября 2021
Перенаправление ввода/вывода в Linux
27 сентября 2021
Работа с файлами и каталогами в Linux
26 сентября 2021
Как сгенерировать SSH-ключ для доступа на сервер
23 сентября 2021
Как установить и настроить веб-сервер Apache
23 сентября 2021
Руководство по написанию скриптов в Linux Bash
21 сентября 2021
Введение в Git: настройка и основные команды
21 сентября 2021
Как установить MySQL на Windows
21 сентября 2021
Как установить и использовать MySQL Workbench
20 сентября 2021
Создание нового пользователя и настройка прав в MySQL
© ООО «Селектел», 2008—2021
Полностью изолированные физические серверы любой конфигурации с облачной готовностью
Виртуальные машины с моментальным масштабированием и поддержкой Infrastructure-as-code
В дата-центрах TIER III Москвы, Санкт‑Петербурга и ЛО
Инфраструктура на базе VMware для бизнес-критичных задач любой сложности
Готовые к работе управляемые базы данных PostgreSQL и MySQL™
Полностью готовый к работе кластер Kubernetes для управления контейнерами
Масштабируемое хранилище данных с гибким ценообразованием, поддержкой FTP и S3 API
Запуск кода по запросу или событию без создания и обслуживания сервера
Источник
Команда 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
Я не буду приводить много примеров, так как там и так все более-менее понятно после пояснения правил создания выражений установки прав. Сначала самый частый случай — разрешить выполнения скрипта владельцу:
Или можно воспользоваться цифровой записью:
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 для управления правами. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментариях!
Источник
Ubuntu Documentation
Candidate for Deletion
This article may not be appropriate for this wiki, and may be deleted. More info.
Содержание
Права доступа в системе Linux
Поскольку Linux (да и UNIX вообще) — многопользовательская OS, в ней существует система прав доступа к файлам, служащая для защиты файлов каждого пользователя от влияния других пользователей системы.
Права доступа подразделяются на три типа:
чтение (read)
запись (write)
выполнение (execute)
Разрешение на чтение позволяет пользователю читать содержимое файлов, а в случае каталогов — просматривать перечень имен файлов в каталоге (используя, например, команду ls). Разрешение на запись позволяет пользователю писать в файл, изменять его или удалять. Для каталогов это дает право cоздавать в каталоге новые файлы и каталоги, или удалять файлы в этом каталоге. Наконец, разрешение на выполнение позволяет пользователю выполнять файлы (как бинарные программы, так и командные файлы). Если на файле стоит атрибут Execute, то независимо от его расширения он считается программой, которую можно запустить. (Вот почему в *nix не принято ставить исполняемым файлам расширения по типу DOS’овских *.com, *.exe, *.bat. Вообще в Unix/Linux нет такого жесткого понятия расширение файла, как в Dos/Windows, и система сама определяет тип файлов независимо от их расширения, но это — уже другая история. ). Так же атрибут выполнения может стоять у shell-скриптов, CGI-скриптов, и у всего, что можно хоть как-то запустить. Разрешение на выполнение применительно к каталогам означает возможность выполнять команды вроде cd.
Эти типы прав доступа могут быть предоставлены для трех классов пользователей:
владельцы — у каждого файла в Linux’e есть один владелец.
группы — с каждым файлом связана группа пользователей этого файла.
остальные пользователи.
Владельцем файла становится юзер, который создал этот файл. Короче говоря, для файла все юзеры делятся на 3 типа: хозяин, или владелец, юзеры, состоящие в одной группе с владельцем, и все остальные юзеры. Для каждого типа — свои права. Учтите, что директории и все системные устройства в UNIX являются обычными файлами. Тот же самый /dev/fd0 — это не сам Floppy disk, а всего лишь файл, связанный с флопповодом. Поэтому, если root запретил юзеру доступ к этому файлу, тот не сможет использовать флопповод (так же обстоят дела с модемами, хардами и т.п.). Владельцем всех системных файлов является root. Он же имеет право забирать файлы у одного юзера и передавать их другому (менять владельца).
Команда chmod
Изменить права доступа к файлу может либо его владелец, либо сам root. Делается это командой chmod. Существует две формы представления прав доступа: символьная и цифровая.
Символьная форма прав доступа
Если войти в любой каталог, где есть файлы, и набрать ls -l, то появится список всех файлов в этом каталоге и права доступа в символьной форме. Строка прав доступа состоит из 10 символов. Первый символ указывает на тип файла: d — директория, — — обычный файл. Три последующих — права доступа владельца к этому файлу. Если первый символ из этих трех — r, владелец имеет право читать этот файл, а если —, то не имеет. Следующие 2 символа — w — писать и x — запускать. Если вместо них стоит —, значит, владелец этого права не имеет. Еще 3 символа — права доступа группы, еще три — права всех остальных пользователей.
drwxrwxrwx — директория, к которой все имеют любые права доступа.
-rwxr--r-- — обычный файл, владелец может делать все, а остальные — только читать.
-r-------- — обычный файл, который владелец может только читать, а остальные пользователи не видят.
Важно заметить, что права доступа, которые имеет файл, зависят также от прав доступа к каталогу, в котором этот файл находится. Например, даже если файл имеет -rwxrwxrwx, другие пользователи не смогут до него добраться, если у них не будет прав на чтение и выполнение каталога, в котором находится файл. Например, если юзер захочет ограничить доступ ко всем своим файлам, он может просто изменить права доступа своего домашнего каталога /home/user на drwx------. Таким образом, никто другой не будет иметь доступ в его каталог, а следовательно посторонним будут недоступны и все файлы. Так что, пользователь может не заботиться об индивидуальной защите своих файлов. Другими словами, чтобы иметь доступ к файлу, вы должны иметь доступ ко всем каталогам, лежащим на пути от корня к этому файлу, а также разрешение на доступ собственно к этому файлу. Обычно пользователи UNIX весьма открыты всеми своими файлами. По умолчанию файлам устанавливается защита -rw-r--r--, которая позволяет другим пользователям читать файлы, но ни коим образом их не менять. Каталогам обычно устанавливаются права доступа drwxr-xr-x, что позволяет другим пользователям ходить с правами экскурсантов по вашим каталогам, но ничего в них не трогать и не записывать.
Но многие пользователи хотят держать других подальше от своих файлов. Установив права доступа файла -rw-------, вы никому не покажете этот файл и не дадите записать в него. Также хорошо закрывает файлы защита соответствующего каталога drwx------.
С правами доступа в символьной форме chmod работает так:
Кратко, вы выбираете из all (все), user (пользователь), group (группа) или other (другие). Далее указываете, либо вы добавляете права (+), либо лишаете прав (—). И наконец, вы указываете один или несколько режимов: read, write или execute.
Числовая форма прав доступа
Теперь права доступа в числовой форме. Для некоторых эта форма может показаться более простой. Надо запомнить только следующее:
- 400 — владелец имеет право на чтение
- 200 — владелец имеет право на запись
- 100 — владелец имеет право на выполнение
- 40 — группа имеет право на чтение
- 20 — группа имеет право на запись
- 10 — группа имеет право на выполнение
- 4 — остальные имеют право на чтение
- 2 — остальные имеют право на запись
- 1 — остальные имеют право на выполнение
Теперь осталось только просуммировать числа, соответствующие тем правам доступа, которые мы хотим поставить файлу.
Примеры
Символьная форма
Дает всем пользователям право читать файл stuff.
То же самое, что и ранее (a — по умолчанию).
Лишает права на выполнение всех, кроме владельца.
Разрешает владельцу все (read, write и execute).
Запрещает все (read, write и execute) пользователям категории другие (other).
владелец может делать все, а остальные — только читать.
все имеют право только на чтение.
владелец может читать и выполнять, остальные — только выполнять.
Классическая команда. Скрипт — это исполняемый файл, и все должны иметь к нему доступ на чтение и выполнение. Только владелец этого файла может его изменять или удалять.
Команда chown
Изменение владельца файла осуществляется командой chown, например:
Для передачи каталога надо вводить:
Команда chgroup
Изменение группы, которой принадлежит файл.
Для передачи каталога надо вводить:
FilePermissionsRu (последним исправлял пользователь ckimes 2017-09-02 05:31:46)
The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details
Источник