Права доступа к файлам и папкам
Поговорив о пользователях и группах, самое время вспомнить про права доступа, которые для них настраиваются. Общая схема прав одинакова и для файлов, и для папок. Вы уже видели, как система отображает права доступа, в выводе команды ls -l , которая показывает содержимое директории:
Первые 10 символов содержат информацию о правах к файлу или каталогу.
права пользователей группы-владельца
права всех остальных пользователей
Далее идёт имя пользователя-владельца и группы -владельца.
файл принадлежит пользователю root
файл принадлежит группе root
Исходя из этого, иерархия доступа на уровне пользователей разбивается следующим образом: права пользователя-владельца, права участников группы-владельца и права всех остальных.
Соответственно, для каждой категории указывается, какие операции с файлом ей доступны: чтение (r), запись (w) или выполнение (x) — для исполняемых файлов. Для директорий параметры те же, но обозначают немного другое: просмотр директории (r), создание папок / файлов (w) внутри директории, переход в директорию (x).
Каждый из этих уровней доступа можно выразить в восьмеричной системе с помощью числового значения: 4 (r), 2 (w), 1 (x). Вот так мы и получаем общую схему прав:
| a — любые пользователи | ||||||||
| u — права пользователя | g — права группы | o — права всех остальных | ||||||
| r | w | x | r | w | x | r | w | x |
| 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
Для отображения уровня прав помимо формата rwxrwxrwx используется упомянутый восьмеричный формат. Для этого достаточно сложить все уровни прав по категориям:
Теперь можно перейти к инструментам, которые позволяют управлять правами на файлы и директории.
Смена владельца файла или директории
Для смены владельца доступны два инструмента. Первый — chown , позволяет изменить пользователя и группу файла или папки:
Если не указывать группу, изменится только пользователь-владелец. Если не указывать пользователя ( :[новая группа] ), изменится только группа-владелец.
При изменении прав на директории можно использовать параметр -R . Он рекурсивно изменит владельца всех вложенных директорий и файлов. Представим, что нам нужно предоставить права на папку new-user для одноимённого пользователя и его группы. Команда для этого будет выглядеть так:
Второй инструмент — chgrp . В отличие от первого, меняет только группу-владельца:
Как и chown, может работать рекурсивно с помощью ключа -R .
Смена прав доступа к файлу или директории
Для работы непосредственно с правами используется команда chmod :
При работе с директориями опция -R позволит изменить права на все вложенные файлы и папки.
Настройки прав в chmod можно определять двумя способами:
Указав категорию ( u — пользователь-владелец, g — группа-владелец, o — другие пользователи, a — все пользователи), модификатор ( + , — , = ) и, соответственно, нужные права ( r , w , x ).
Например, представим, что у нас есть файл example.txt с максимальным уровнем прав для всех категорий пользователей:
Допустим, мы не хотим, чтобы кто-то в принципе мог запускать этот файл на выполнение. В таком случае нам нужно убрать параметр «x» из прав всех категорий пользователей сразу. Это можно сделать так:
Представим, что потом мы решили вернуть владельцу права на запуск файла. То есть нам нужно добавить параметр «x» в категорию пользователя-владельца:
Если вдруг мы захотим изменить весь набор параметров для отдельной категории разом, это будет выглядеть следующим образом:
Указав права в виде числового значения. Возможно, это не так прозрачно, но зато быстрее. В качестве параметра нам нужно передать это самое цифровое выражение уровня прав:
В примере мы назначили максимальный уровень доступа всем категориям пользователей.
Соответственно, для изменения уровня прав отдельной категории пользователей нужно изменить только это числовое значение. Например, запретим исполнение файла для всех пользователей:
А потом вернём, но только пользователю-владельцу:
Бывает, что нам нужно изменить права только на все папки или только на все файлы в определённой директории. Часто с этим можно столкнуться при настройке прав на файлы сайтов. Вот вам пара однострочников на этот случай:
Смена прав на 755 для всех папок внутри /var/www/sites/example.com :
Смена прав на 644 для всех файлов внутри /var/www/sites/example.com :
Изменение атрибутов файлов
Помимо прав доступа и владельца каждый файл может иметь ряд атрибутов, определяемых на уровне файловой системы. Атрибуты показывают, какие операции могут или не могут проводиться с файлом в принципе, независимо от того, кто им владеет.
Посмотреть атрибуты файлов в текущей директории можно с помощью команды lsattr . Если запустить её без аргументов, она выведет атрибуты всех файлов в текущей директории. Если указать путь к файлу или папке, она перечислит свойства указанного файла или списка файлов в указанной папке соответственно:
Первые 20 символов в строке предназначены для отображения атрибутов файла.
Список атрибутов может отличаться в зависимости от файловой системы. Вот список основных:
«godmode» — файл становится неуязвим для любых изменений. Его нельзя удалить, переименовать, изменить содержимое, создать символьную ссылку на него.
в файл с таким атрибутом можно только добавлять новые данные. Старое содержимое изменить или удалить не получится. Это пригодится для защиты от вредоносных вставок или замен в файлах, куда постоянно записываются данные — например, в логах. Доступ к изменению старого содержимого по умолчанию есть только у суперпользователя root .
активирует безвозвратное удаление файла. В том смысле, что после удаления файл нельзя будет восстановить с носителя — при удалении все использовавшиеся для хранения файла блоки на диске перезаписываются нулями.
активирует «обратимое» удаление файлов. Это значит, что при удалении файла с этим атрибутом его содержимое можно восстановить.
сжатый файл. Все данные, записываемые в файл, автоматически сжимаются, а данные, извлекаемые из файла — возвращаются в исходное состояние.
настраивает для файла исключение при использовании утилиты dump . То есть файл не будет включен в архив при создании резервной копии этим способом.
показывает, что файл в качестве указателей использует экстенты.
в журналируемых файловых системах ( ext3 , ext4 ) указывает на то, что при сохранении файла он сначала будет записан в журнал ФС, и только потом — на диск.
указывает, что при работе с файлом система не будет обновлять информацию о времени доступа к нему.
атрибут для директорий. Указывает, что все изменения в папке синхронно записываются на диск, минуя кэш.
указывает, что все изменения в файле с этим атрибутом записываются синхронно на диск, минуя кэш.
Изменить атрибуты файла позволяет команда chattr :
То есть, если нам нужно защитить какой-то важный файл от посягательств, можно использовать такую команду:
Проверяем — посягательства не работают.
Если же нам нужно вернуть файл в нормальное состояние, нужно выполнить обратную операцию:
Для просмотра более подробной информации о файловых атрибутах, их ограничениях и правилах применения используйте команду:
Введение
В этом руководстве вы научитесь, как изменить права доступа в Linux и установить нового владельца файла/папки через командную строку. Существует 2 базовые команды, которые могут быть использованы для данных целей: chmod и chown.
Что вам понадобится
Перед тем, как вы начнете это руководство, вам понадобится следующее:
- Доступ к командной строке
Шаг 1 — Как изменить права доступа в Linux через командную строку
chmod — эта команда используется для изменения прав доступа к файлу или папке. Каждый файл имеет типы пользователей, которые могут с ним взаимодействовать:
ТипОбъяснениеВладелецПользователь, создавший и владеющий данным файлом или папкой.ГруппаВсе пользователи, члены одной группы.ДругиеВсе другие пользователи в системе, не являющиеся ни владельцами, ни членами группы.
Команда s -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 на эти:
<strong>-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt</strong>
Мы должны написать следующую команду:
chmod 746 file1.txt
Каждый номер в этой команде представляет собой права для одного из типов пользователей (владелец, группа и другие). Первый номер 7. Теперь, используя объяснение числовых значений выше, единственный вариант для получения числа 7 — сложение чисел 4, 2 и 1, получаем 4+2+1=7. Проще говоря, это означает ВСЕ права доступа (чтение, запись, выполнение — rwx). Первый номер устанавливает права доступа для владельца файла. Второй номер 4, который означает права доступа -r (чтение), устанавливает права доступа для группы владельца. Третий номер 6, используя тот же способ, что и с первым номером, 4+2=6, дает группе другие, права на чтение (4) и запись (2) файла. Третья часть в команде (file1.txt) — это имя файла для которого мы изменяем права доступа.
Еще один пример: chmod 777 file2.txt, эта команда даст все права для каждого типа пользователей (владелец , группа и другие).
Вот список самых наиболее распространенных прав доступа для файлов:
ЗначениеЦифровое значениеОбъяснение-rw — — -600Владелец может читать и записывать файл.-rw-r–r–644Владелец может читать и записывать файл, группа и другие могут только читать.-rw-rw-rw-666Владелец, группа и другие могут читать и записывать.-rwx — — 700Владелец может читать, записывать и выполнять, группа и другие не имеют никаких прав доступа.-rwx–x–x711Владелец может читать, записывать и выполнять, группа и другие могут только выполнять.-rwxr-xr-x755Владелец может читать, записывать и выполнять, группа и другие могут читать и выполнять.-rwxrwxrwx777Все типы пользователей могут читать, записывать и выполнять.
Все типы пользователей могут читать, записывать и выполнять.
Наиболее распространенные права доступа для каталогов:
ЗначениеЦифровое значениеОбъяснениеdrwx — — 700Только владелец может читать и записывать в этом каталоге.drwxr-xr-x755Владелец, группа и другие могут читать каталог, но только владелец может изменять содержимое.
Существуют и другие способы, как изменить права доступа в Linux, используя команду chmod. Но нашей персональной рекомендацией станет, изучение одной из этих команд и ее использование (в этом случае способ с номерами). Если вы хотите узнать больше о других путях изменения прав доступа, вы можете прочитать об этом здесь.
Шаг 2 — Изменение владельца файла или папки через командную строку
chown — команда используется для смены владельца файла или папки. Самый стандартный синтаксис для этой команды:
chown [владелец/группа владельца] [имя файла]
К примеру, если у нас есть файл “demo.txt” и мы хотим изменить владельца на “jerry” и группу владельца на “clients”, нам необходима эта команда:
chown jerry:clients demo.txt
Как вы видите, мы отделили владельца и группу владельца символом “:” (двоеточие). Если мы хотим поменять только владельца файла, используем этот код:
chown jerry demo.txt
Мы просто убрали группу владельца и вписали нового владельца файла, в таком случае группа владельца останется без изменений.
Другой схожий пример, если мы хотим поменять только группу владельца:
chown :clients demo.txt
В этом случае, группа владельца изменится на clients (владелец останется прежним).
Шаг 3 — Использование дополнительных опций с командами chmod и chown
Одна из основных опций работающая с обеими командами это -R, которая означает рекурсивный. Эта опция позволяет вам менять права доступа и владельца файла, заданной папки и ВСЕХ других файлов внутри нее.
ВАЖНО! Будьте очень осторожны с этой опцией, если вы используете ее неправильно, вы можете изменить права доступа и владельца ВСЕХ файлов в вашей системе, что приведет к ошибкам в работе и трате огромного количества времени на откат изменений.
Другие опции для “chmod” и “chown”:
- “-f” — тихая или силовая опция. При использовании данной опции скроет большинство сообщений об ошибках.
- “-v” — делает диагностику каждого файла затронутого командой.
- “-c” — схожа с опцией -v, но предоставляет информацию только в случае реальных изменений.
Заключение
В этом руководстве вы научились, как изменить права доступа в Linux и узнали команды для смены владельца папки или файла. Знание данных команд поможет вам в более удобном управлении вашим сервером. Если вы хотите продолжить изучение по данной теме, проверьте эти руководства:
Права доступа Linux
Каждый пользователь должен работать в системе под своей учетной записью. Это позволит ему обезопасить свои файлы от чужого вмешательства, по системным журналам определить, когда и кем были произведены некорректные действия, и т. д.
Давайте вспомним команду ls -al. Она возвращает список файлов в следующем виде:
drwx—— 3 User UserG 4096 Nov 26 16:10 .
- дефис (-) — обычный файл;
- буква d — каталог;
- буква 1 — символьная ссылка;
- буква s — сокет;
- буква р — файл FIFO (First In, First Out — первый вошел, первый вышел).
- первая тройка — владельцу файла;
- вторая — пользователям, входящим в группу владельца;
- последняя — всем остальным.
Каждая такая группа состоит из трех символов: г (чтение), w (запись) и х (выполнение). Наличие буквы говорит о разрешении соответствующего действия.
Вернемся к нашему примеру. Первая строка содержит права доступа: drwx——– . Первый символ d — значит, это каталог. Потом идут три символа rwx — т. е. хозяин файла может читать, записывать и исполнять каталог. Вместо остальных шести символов стоят знаки дефиса— значит, ни у пользователей группы UserG, ни у всех остальных никаких прав нет.
Права можно задавать и последовательностью нулей и единиц. Если в определен ном месте стоит 1 (указан один из символов г, w или х), то операция разрешена, а если 0 (указан дефис) — действие запрещено. Давайте попробуем записать права rwxr-xr— в виде нулей и единиц. Запишите вместо букв единицы, а вместо дефисов — нули. Должно получиться 111101100. Разобьем эту комбинацию на три части: 111, 101 и 100. Теперь каждую тройку переведем в восьмеричную систему по следующей формуле:
Цифра1 ★ 4 + Цифра2 ★ 2 + ЦифраЗ
- О — запрещено все;
- 1 — разрешено выполнение;
- 2 — разрешена запись;
- 3 — разрешены запись и выполнение;
- 4 — разрешено чтение;
- 5 — разрешены чтение и выполнение;
- 6 — разрешены чтение и запись;
- 7 — разрешено все.
Попробуйте теперь с помощью этого списка определить возможности, которые предоставляет число 754. Каждый разряд нужно рассматривать в отдельности. Сравните полученный результат с символьным представлением rwxr-xr—, из которого мы получили с помощью перевода число 754.
Важно! Для того чтобы иметь право создавать или удалять файлы, необходимо иметь разрешение на запись в каталог. Это немного сбивает начинающих пользователей с толку, поскольку им бывает непонятно, почему при наличии всех прав на файл его нельзя удалить.
Если необходимо, чтобы при копировании файла сохранились и права доступа, и время доступа, можно использовать команду ср с указанием ключа -р.
Назначение прав
Для изменения режима доступа к объектам файловой системы служит команда chmod. С ее помощью можно устанавливать новые права на объект как в символьном (применяется для изменения относительно текущего состояния), так и в числовом виде (абсолютное задание). Для начала рассмотрим символьный режим:
- u — изменить права владельца;
- g — изменить права группы;
- о — изменить права остальных пользователей;
- а — изменить все права (то же самое, что передать значение: ugo).
-
- — добавить;
- — удались;
- г — чтение;
- w — запись;
- х — выполнение;
- X — выполнение, если файл является каталогом или уже имеет аналогичные права для какого-либо пользователя;
- S — SUID- или SGID-бит
- t — sticky-бит. В этом случае только владелец файла и каталога сможет удалить его
- и — всем пользователям, как и у владельца;
- g — всем пользователям, как и у группы;
- о — всем пользователям, как и у остальных пользователей.
В числовом представлении команда выглядит следующим образом:
- первый разряд определяет дополнительный бит и может принимать одно из значений:
- 1 — бит принадлежности;
- 2 — бит SGID;
- 4 — бит SUID. Если дополнительные биты устанавливать не надо, этот разряд можно опустить;
Например, мы хотим, чтобы владелец и группа имели все права (число 7) на файл text, а остальные пользователи могли его только выполнять (число 1).
Команда будет выглядеть следующим образом:
Число 771 в символьном виде соответствует правам: rwxrwx—х.
Следующая команда отменит возможность чтения файла у группы:
После этой команды права доступа на файл станут: rwx-wx—х.
Теперь давайте запретим для всех запуск файла. Для этого можно выполнить команду:
После наших манипуляций права доступа на файл станут: rw—w—
Владелец файла
Для изменения владельца файла существует команда chown:
Через параметр имя определяется пользователь, которому нужно передать права на указанный файл. Например, давайте сделаем владельцем файла test администратора root. Для этого нужно выполнить следующую команду:
Изменить можно и группу, к которой принадлежит файл. Для этого выполните команду chgrp:
Здесь задается имя группы, которой предоставляются права на указанный файл. Например, для файла test укажите группу администратора root, отдав команду:
С помощью команды chown можно убить сразу двух зайцев и изменить и пользователя, и группу одной командой — для этого группу нужно указать через двоеточие после имени пользователя:
Довольно часто приходится менять владельца сразу всех объектов в каталоге, и для этого можно использовать ключ — R :
chown _www:staff /etc/www/website
Подобную команду можно использовать в следующей, например, ситуации. Пусть у меня есть процесс, который иногда должен загружать файлы на сервер по FTP и после этого для определенного каталога нужно изменить права доступа так, чтобы скрипты сайта могли обращаться к этим файлам. Одной такой командой я меняю разрешение доступа ко всем новым файлам.
Права по умолчанию
Когда пользователь создает новый файл или каталог, то им назначаются права по умолчанию. Давайте рассмотрим это на примере. Для создания файла выполним команду is и перенаправим вывод в файл:
Теперь проверим права на этот файл с помощью команды is -al. Должно получиться: -rw-r—г—, т. е. владелец может читать и изменять файл, а пользователи его группы и все остальные — только просматривать. В старых системах и в некоторых дистрибутивах права могут оказаться и такими: -rw-rw-r—, т. е. пользователи группы тоже смогут корректировать файл. Но в любом случае все получают возможность читать файл — это разрешено. Такие права нарушают главное правило безопасности.
В этом отношении политика назначения прав по умолчанию может быть не совсем эффективна— если вы создадите файл, который хранит конфиденциальные данные, информация из него будет доступна для всеобщего обозрения. И если вы забудете понизить права, то любой сможет увидеть и прочитать этот файл.
Ситуацию можно изменить, если понимать, как создаются права для нового файла. Они рассчитываются на основе маски, текущее значение которой определяется командой umask. Если выполнить ее после установки системы, будет получено значение 0022 или 002.
Посмотрим, как маска влияет на регламентацию доступа. По умолчанию права для файлов устанавливаются в значение 666 минус маска, а для каталогов — 777 минус маска.
Все это не есть хорошо. Только владелец должен иметь доступ, достаточный для полноценной работы с файлами и каталогами, а остальные вообще не должны иметь никаких прав. Эту ситуацию можно исправить изменением маски. Я рекомендую установить ее в 077. В этом случае для каталогов права будут определены так: 777 — 077 = 700 (или: drwx—— ), а для файлов: 666 — 077 = 600 (или: -rw——- ). Тогда доступ к файлу имеет только владелец. Все остальные — отдыхают.
Вот такое положение дел нас уже устраивает. Чтобы установить новую маску, выполните команду:
В нашем случае это будет:
Изменение маски по умолчанию затронет только текущий сеанс. Если перезапустить терминал, то маска сбросится на значение по умолчанию. Чтобы значение маски было постоянным, его нужно прописать в файлы /etc/bashrc и /etc/profile. Тогда значение маски будет устанавливаться автоматически при старте консоли.
Права доступа к ссылкам
Мы говорили о жестких и символьных ссылках на файлы. Для начала проверим права на жесткие ссылки:
Права абсолютно идентичны. Я надеюсь, что вы другого и не ожидали, ведь у жестких ссылок одинаковые дескрипторы.
С символьными ссылками дело обстоит куда хуже.
Если вы решили использовать символьные ссылки, то всегда помните особенность формирования прав доступа на файлы. Можете даже выбить на мониторе надпись: «Ссылки на файлы создаются с полными правами.
Дополнительные возможности защиты
Помимо прав доступа, у любого файла есть еще и атрибуты, которые позволяют построить дополнительную стену безопасности.
————— filename.txt
Первая строка демонстрирует использование команды, а во второй — отображается результат ее работы. Как видите, мы получили набор дефисов вместо атрибутов, а значит, ни один из них не определен.
Для установки атрибута применяется команда chattr:
Если требуется рекурсивное изменение доступа к каталогу и ко всем содержащимся в нем файлам и подкаталогам, можно использовать ключ -R. В этом случае вместо имени файла укажите в команде chattr каталог.
- A — не создавать метку atime записи времени последнего обращения к файлу. С точки зрения безопасности этот атрибут несет отрицательный эффект, потому что по дате обращения можно контролировать, когда файл был модифицирован. Поэтому не рекомендую устанавливать этот флаг.
- a — позволяет открывать файл только в режиме добавления. Это значит, что уже существующие данные изменить или удалить будет нельзя;
- d — заставляет игнорировать файл при копировании. Этот флаг позволяет уменьшить размер резервной копии, но устанавливать его нужно только на файлы, не имеющие ценности и важности, — например, временные.
- i — запрещает выполнение с файлом каких-либо действий по корректировке (изменение, удаление, переименование, создание ссылок);
- s — делает невозможным восстановление файла после удаления. При удалении файла все пространство на диске, где он был записан, будет заполнено нулями;
- S — во время изменения файла все действия будут фиксироваться на жестком диске.
Для установки атрибута перед ним нужно поставить знак «плюс», для снятия — знак «минус». Рассмотрим несколько примеров:
В первой строке мы добавляем атрибут i, а значит, запрещаем какие-либо изменения файла. Во второй строке устанавливаем флаг s, и теперь при удалении файла можно быть уверенным, что он уничтожен полностью. Команда в третьей строке запрашивает текущие атрибуты, а в последней строке вы можете увидеть, что в перечне атрибутов первый символ равен s, а четвертый — i.
Итак, в четвертой строке у нашего файла стоят два взаимоисключающих атрибута: один запрещает изменения, другой требует полного стирания с диска. Что произойдет, если мы попытаемся удалить файл? Посмотрим?
rm: remove write-protected file “test”?
В первой строке мы выполняем команду удаления файла. На это ОС просит подтвердить операцию над защищенным от записи файлом (сообщение показано во второй строке). Как видите, ОС определила наш атрибут i. Попробуйте ввести букву Y, чтобы подтвердить действие. Вы увидите сообщение об ошибке, и файл останется на месте.
Давайте снимем атрибут i:
s————– test
После отмены атрибута я выполнил команду lsattr, чтобы убедиться в правильно сти выполнения команды. Вот теперь файл легко удалить с помощью команды rm.
Команда 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 Вообще все. Математические операции означают следующее:
Оператор Описание + Добавляет к текущим правам доступа новое разрешение. — Удаляет из текущих прав доступа определенное разрешение. = Устанавливает полностью новые разрешения (предыдущие перезаписываются новыми). В одной команде можно перечислять владельцев и их разрешения через запятую (см. пример ниже).
Разрешаем владельцу (u) и группе (g) запускать файл (x).
Рекурсивное изменение прав доступа
Если необходимо изменить права доступа на все файлы в директории, включая вложенные директории, то для этого существует опция -R, что означает рекурсивное изменение прав доступа для директорий и их содержимого. Например, изменим права доступа у всех файлов в директории Mydir:
И еще один момент. Если пользователь не является владельцем файла, но ему нужно изменить права доступа у данного файла, то команду chmod необходимо выполнять с использованием sudo, например:
Видео-обзор команды chmod
Команда chown — изменение владельца и группы
Для изменения владельца и группы файла используется команда chown.
Для изменения владельца файла используется следующий синтаксис:
Например, установим для файла myfile нового владельца vasya:
Для изменения владельца и группы файла используется следующий синтаксис:
Например, установим для файла myfile нового владельца vasya и группу sambashare:
Команда chgrp — изменение группы
Есть еще одна команда — chgrp. Она позволяет изменить только группу. Например:
Резюме
В Linux у каждого файла есть права доступа — это разрешения, владелец и группа.
Разрешения задаются для владельца, группы и для всех остальных.
Есть три вида разрешений — r — чтение, w — изменение, x — запуск.