Команда chmod в Linux. Linux статьи
Написать статью
Войдите, чтобы писать статьи

Команда chmod в Linux

6

Команда chmod в Linux
Команда chmod, команда chown и команда chgrp.

Команда chmod

Команда chmod предназначена для изменения прав доступа файлов и директорий в Linux. Название команды произошло от словосочетания «change mode».

Синтаксис команды chmod следующий:

chmod разрешения имя_файла

Разрешения можно задавать двумя способами:

  • Числом
  • Символами

Изменение прав доступа командой chmod

Запись прав доступа числом

Пример:

chmod 764 myfile

В данном формате права доступа задаются не символами rwx, как описано выше, а трехзначным числом. Каждая цифра числа означает определенный набор прав доступа.

  • Первая цифра используется для указания прав доступа для пользователя.
  • Вторая цифра для группы.
  • Третья для всех остальных.

В таблице ниже приводятся все возможные комбинации разрешений rwx и соответсвующие им числа (которые используются в команде chmod):

ЧислоРазрешенияСимвольное обозначение
0разрешения отсутствуют---
1x — запуск--x
2w — изменение-w-
3x+w — запуск+изменение-wx
4r — чтениеr--
5r+x — чтение+запускr-x
6r+w — чтение+изменениеrw-
7r+w+x — чтение+изменение+запускrwx

Рассмотрим использование команды chmod с записью прав доступа числом на примере. Установим для файла права доступа 764:

chmod 764 myfile

Это означает (см. таблицу выше), что для файла myfile мы устанавливаем права доступа 764, которые означают:

  • 7 — права для владельца-пользователя. Владелец файла может читать, изменять и запускать файл (r+w+x).
  • 6 — права для группы. Пользователи, которые принадлежат группе могут читать и изменять файл (r+w).
  • 4 — права для всех остальных. Все остальные могут только читать файл (r).

Если записать 764 с помощью символов (см. таблицу), то мы получим: «rwxrw-r-».

Команда chmod

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

Числовое
обозначение
"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Все пользователи могут читать, изменять и редактировать файл.

Запись прав доступа символами

Примеры:

chmod +x myfile1
chmod g=rw myfile2
chmod u-w myfile3

Как вы можете видеть, в данном формате права доступа задаются символами rwx, но в синтаксисе используются и другие вспомогательные символы, например, математические операции «+» и «-» и такие символы как, например, «g» или «u».

Общий синтаксис можно записать примерно так:

chmod (владелец)(математическая операция)(разрешения) имя_файла

Обозначения для владельцев файла следующие:

ОбозначениеОписание
uВладелец-пользователь.
gГруппа.
oВсе остальные.
aВообще все.

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

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

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

Рассмотрим примеры:

  • chmod +x myfile1

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

  • chmod g=rw myfile2

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

  • chmod u-w myfile3

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

  • chmod ug+x myfile2

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

  • chmod u+x,g-w,o-r myfile3

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

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

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

chmod -R 644 Mydir

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

sudo chmod 644 file

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

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

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

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

chown новый_владелец имя_файла

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

chown vasya myfile

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

chown новый_владелец:новая_группа имя_файла

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

chown vasya:sambashare myfile

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

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

chgrp sambashare myfile

Резюме

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

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

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

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

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

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

Лайков: +1
войдите, чтобы ставить лайки
6
  • Опубликовано: 15.08.2018

Комментарии

Vladimir
19.09.2018
20:31
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Спасибо!
Павел
18.12.2018
14:42
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Зачёт. Но было бы ещё интересно узнать: есть ли случаи, когда разрешения скидываются после простой перезагрузки системы.
фд
14.07.2019
19:58
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Если записать 764 с помощью символов (см. таблицу), то мы получим: «rwxrw-r-».
здесь ошибка, не хватает одного атрибута
VadimAndy
Активный пользователь
Активный
15.07.2019
18:23
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийфдРодительский комментарий
0
войдите, чтобы ставить лайки
2 атрибутов! сколько у тебя прочерков!?
CoreKillerLvL9999
Активный пользователь
Активный
02.05.2020
17:33
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
Восьмеричное представление прав доступа работает так:
Восьмеричное число определяет битовую маску(двоичный триплет)
1 - устанавливает атрибут
0 - сбрасывает атрибут
Ниже представлена таблица, в ней показан принцип роботы такого механизма.
Oct: Bin: Atrr:
0 | 000 | ---
1 | 001 | --x
2 | 010 | -w-
3 | 011 | -wx
4 | 100 | r--
5 | 101 | r-x
6 | 110 | rw-
7 | 111 | rwx
----------------------
Вот более понятная схема:
7 6 4 Задаём права для: User, Group, Other
111 | 110 | 100 Двуличный триплет
rwx | rw- | r-- Установленные атрибуты
Oleg28
31.08.2022
08:39
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Спасибо! Отлично все рассказали! Все по полочкам.

Написать комментарий

Ваше имя:
Текст комментария:
  • Уважать других.
  • Не ругаться.
  • Без оскорблений.
  • Без грубости.
  • Не переходить на личности.
  • Писать на русском языке.
  • Без политики.
  • Без флуда.
Правила