Изменение Прав Доступа к Файлам и Папка в Linux — Основы Chmod
Команда сhmod (change mode) служит для изменения прав доступа к файлам и папкам.
Синтаксис
Команды chmod имеет следующий синтаксис:
- -R, —recursive; изменять файлы и директории рекурсивно
- -f, —silent, —quiet; не выводить сообщения об ошибках
Показать текущие права на файл / директорию можно с помощью команды ls:
или используя команду stat:
Классы доступа
Классы доступа используются для того, чтобы определить какому пользователю назначаются права. Если класс доступа не указан, то по умолчанию используется класс “all”. Классы доступа представлены одной или несколькими из ниже перечисленных букв:
| Класс | Class | Описание |
|---|---|---|
| u | user | владелец файла (папки) |
| g | group | пользователи, которые являются членами группы к которой принадлежит файл (папка) |
| o | others | пользователи, которые не являются ни владельцем файла (папки), ни входят в группу файла (папки) |
| a | all | все три перечисленных выше класса, то же самое что ugo |
Операторы
Программа chmod использует оператор для того, чтобы указать каким образом будут применены права доступа к файлам или папкам. Приняты следующие операторы:
| Оператор | Описание |
|---|---|
| + | добавить указанные права доступа к указанному классу |
| — | убрать указанные права доступа из указанного класса |
| = | присвоить указанные права доступа |
Права доступа
Права доступа указывают какие полномочия следует предоставить или забрать у указанного класса. Существуют три основных вида прав доступа, которые соответствуют базовым полномочиям:
| Права доступа | Name | Описание |
|---|---|---|
| r | read | права на чтение содержимого файла или директорию (просматривать файлы и поддиректории в папке) |
| w | write | права на запись в файл или директорию (создавать файлы и поддиректории в папке) |
| x | execute | права на исполнение файла в качестве программы/скрипта либо права на вход в директорию (просмотр дерева каталога) |
| X | special execute | права на вход в директорию и права на исполнение файла, в случае, если хотя бы одному классу уже назначено право на исполнение (для любого из user, group или other) |
Числовые права доступа
Возможно использование прав доступа как в символьной, так и в числовой форме.
Числовая форма для прав доступа:
- Первая цифра используется для обозначения user (пользователь)
- Вторая цифра используется для обозначения group (группа)
- Третья цифра используется для обозначения others (остальные)
| # | Права | Описание |
|---|---|---|
| 7 | rwx | чтение, запись, исполнение |
| 6 | rw- | чтение, запись |
| 5 | r-x | чтение, запись |
| 4 | r— | чтение |
| 3 | -wx | запись, исполнение |
| 2 | -w- | запись |
| 1 | —x | исполнение |
| 0 | — | нет прав |
10 Простых Примеров:
1. Добавить всем права на чтение файла:
2. Забрать права на исполнение файла у всех:
3. Добавить всем права на чтение и запись:
4. Установить права на чтение и запись для владельца и забрать права у всех остальных:
5. Для директории и всего ее содержимого добавить права на запись для владельца, и забрать права на запись для всех остальных:
6. Забрать у всех все права:
7. Дать всем права на права на чтение, запись и выполнение файла:
8. Задать права на чтение и запись без права на исполнение для владельца и группы, а все остальным дать право только на чтение:
9. Назначить права ‘-rwx’ для владельцев директорий, добавить права ‘rw’ для владельцев файлов, ‘—‘ для всех остальных:
10. Забрать у всех права на исполнение файлов в директории и поддиректориях, но в то же время, разрешить всем просматривать содержимое директорий:
Смена прав доступа на каталог(папку) или файл
Небольшая подсказка для тех, кто постоянно забывает:)
Для изменения прав доступа на каталог(папку) или файл необходимо написать в консоли:
Если же нужно поменять права всем файлам и каталогам(папкам), находящимся в каком то определенном каталоге(папке), то для этого добавляется команда -R, которая всем им рекурсивно изменит права:
Значения цифр, это три отдельных атрибута.
Первая цифра означает права для владельца файла/каталога, вторая — для группы, третья — для всех остальных.
| 0 (—) | — ничего делать нельзя; |
| 1 (—x) | — выполнение; |
| 2 (-w-) | — запись; |
| 3 (-wx) | — запись, выполнение; |
| 4 (r—) | — чтение; |
| 5 (r-x) | — чтение, выполнение; |
| 6 (rw-) | — чтение, запись; |
| 7 (rwx) | — чтение, запись, выполнение. |
Для смены владельца файлов или каталогов используем команду:
,где vasya — имя пользователя, users — группа.
И опять же, если нужно рекурсивно поменять владельца всех файлов и каталогов, находящихся в определенном каталоге, добавляем команду -R:
Как изменить Права Доступа в Linux
Введение
В этом руководстве вы научитесь изменять права доступа в Linux / Unix и устанавливать нового владельца файла/папки через командную строку. Существует 2 базовые команды, которые могут быть использованы для данных целей: chmod и chown.
Что вам понадобится
Перед тем, как вы начнете это руководство, вам понадобится следующее:
- Доступ к командной строке
Шаг 1 – Как изменить права доступа в Linux через командную строку
chmod – эта команда используется для изменения прав доступа к файлу или папке. Каждый файл имеет типы пользователей, которые могут с ним взаимодействовать:
| Тип | Объяснение |
|---|---|
| Владелец (owner) | Пользователь, создавший и владеющий данным файлом или папкой. |
| Группа (group) | Все пользователи, члены одной группы. |
| Другие (other) | Все другие пользователи в системе, не являющиеся ни владельцами, ни членами группы. |
Команда ls -l, может быть использована для отображения прав доступа и владельца. К примеру, команда ls -l file1.txt отобразит:
-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt
- “-rwxr–rw-“ – эта часть строки показывает права доступа. Здесь 4 главные буквы на которые вам надо обратить внимание: r,w,x,d. d означает, что тип файла — это каталог. В нашем примере, такой буквы нет (она стояла бы первой в строке), здесь вместо нее стоит символ “-“ (который в основном означает “нет”). Буква x означает разрешение на выполнение файла или папки (это разрешение необходимо для входа в папку). Буква w означает разрешение на запись файла или папки (редактирование, удаление и т.д.) И наконец последняя буква r, которая означает чтение. Если у вас есть права на чтение файла, вы можете прочесть содержимое файла, но не сможете предпринять другие действия (к примеру, вы можете прочитать код скрипта, но не сможете выполнить его).
- 1 – число хард связи. Проще говоря, хард связь это дополнительное имя для существующего файла.
- user user – это значение показывает владельца файла и его группу.
- 0 – это значение показывает размер файла.
- Jan 19 12:59 – отображает дату последнего изменения.
- file1.txt – предоставляет имя файла или папки.
Хорошо, теперь давайте вернемся к команде chmod. Это команда позволяет нам изменить права доступа к файлу или папке. Мы научим вас, как это сделать просто складывая номера. Каждое из прав доступа имеет свой собственный номер:
- r (чтение) – 4
- w (запись) – 2
- x (выполнение) – 1
К примеру, если мы хотим изменить права доступа к файлу file1.txt на эти:
-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt
Мы должны написать следующую команду:
Каждый номер в этой команде представляет собой права для одного из типов пользователей (владелец, группа и другие). Первый номер 7. Теперь, используя объяснение числовых значений выше, единственный вариант для получения числа 7 — сложение чисел 4, 2 и 1, получаем 4+2+1=7. Проще говоря, это означает ВСЕ права доступа (чтение, запись, выполнение — rwx). Первый номер устанавливает права доступа для владельца файла. Второй номер 4, который означает права доступа -r (чтение), устанавливает права доступа для группы владельца. Третий номер 6, используя тот же способ, что и с первым номером, 4+2=6, дает группе другие, права на чтение (4) и запись (2) файла. Третья часть в команде (file1.txt) – это имя файла для которого мы изменяем права доступа.
эта команда даст все права для каждого типа пользователей (владелец, группа и другие).
Вот список самых наиболее распространённых прав доступа для файлов:
| Значение | Цифровое значение | Объяснение |
|---|---|---|
| -rw——- | 600 | Владелец может читать и записывать файл. |
| -rw-r–r– | 644 | Владелец может читать и записывать файл, группа и другие могут только читать. |
| -rw-rw-rw- | 666 | Владелец, группа и другие могут читать и записывать. |
| -rwx—— | 700 | Владелец может читать, записывать и выполнять, группа и другие не имеют никаких прав доступа. |
| -rwx–x–x | 711 | Владелец может читать, записывать и выполнять, группа и другие могут только выполнять. |
| -rwxr-xr-x | 755 | Владелец может читать, записывать и выполнять, группа и другие могут читать и выполнять. |
| -rwxrwxrwx | 777 | Все типы пользователей могут читать, записывать и выполнять. |
Наиболее распространенные права доступа для каталогов:
| Значение | Цифровое значение | Объяснение |
|---|---|---|
| drwx—— | 700 | Только владелец может читать и записывать в этом каталоге. |
| drwxr-xr-x | 755 | Владелец, группа и другие могут читать каталог, но только владелец может изменять содержимое. |
Существуют и другие способы изменения прав доступа в Linux, используя команду chmod. Но нашей персональной рекомендацией станет, изучение одной из этих команд и её использование (в этом случае способ с номерами). Если вы хотите узнать больше о других путях изменения прав доступа, вы можете прочитать об этом здесь.
Шаг 2 – Изменение владельца файла или папки через командную строку
chown – команда используется для смены владельца файла или папки. Самый стандартный синтаксис для этой команды:
К примеру, если у нас есть файл “demo.txt” и мы хотим изменить владельца на “jerry” и группу владельца на “clients”, нам необходима эта команда:
Как вы видите, мы отделили владельца и группу владельца символом “:” (двоеточие). Если мы хотим поменять только владельца файла, используем этот код:
Мы просто убрали группу владельца и вписали нового владельца файла, в таком случае группа владельца останется без изменений.
Другой схожий пример, если мы хотим поменять только группу владельца:
В этом случае, группа владельца изменится на clients (владелец останется прежним).
Шаг 3 – Использование дополнительных опций с командами chmod и chown
Одна из основных опций работающая с обеими командами это -R, которая означает рекурсивный. Эта опция позволяет вам менять права доступа и владельца файла, заданной папки и ВСЕХ других файлов внутри нее.
ВАЖНО! Будьте очень осторожны с этой опцией, если вы используете ее неправильно, вы можете изменить права доступа и владельца ВСЕХ файлов в вашей системе, что приведет к ошибкам в работе и трате огромного количества времени на откат изменений.
- “-f” – тихая или силовая опция. При использовании данной опции скроет большинство сообщений об ошибках.
- “-v” – делает диагностику каждого файла затронутого командой.
- “-c” – схожа с опцией -v, но предоставляет информацию только в случае реальных изменений.
Заключение
В этом руководстве вы научились, как изменить права доступа Linux и узнали команды для смены владельца папки или файла. Знание данных команд поможет вам в более удобном управлении вашим сервером. Если вы хотите продолжить изучение по данной теме, проверьте эти руководства:

