Устанавка прав доступа пользователей в LinuxИспользуя операционную систему семейства Linux не раз приходится сталкиваться с правами доступа. Порой при необходимости изменить или удалить какой-либо файл или папку, система выдаёт нам ошибку. Решить которую не составит много времени, если конечно владеешь нужными знаниями.

Переходя с Windows на Linux(Ubuntu) мне было не понятно, что означают эти символы, цифры. И как вообще получить эти права. Ведь в Windows такого рода проблемы, решаются гораздо проще, парочкой кликов в графической среде. А в Linux к сожаленью, может и к счастью, делается немного другим способом.

И вот ознакомившись с официальной документацией, прочитав парочку интересных публикаций. Решил написать данную статью, может кому-то будет полезной. Попробую всё объяснить максимально просто и понятно. Итак, изменяем права доступа командой chmod в терминале.

Синтаксис команды chmod.

chmod options mode file

Теперь разберём какое значение подставляется вместо options, mode, file.

options принимает следующие значения (можно его не использовать вообще)

-R
рекурсивное изменение прав (т.е. исполняется на данный каталог и всего его содержимого)
-f
запрет вывода ошибок для файлов, в случае, если права не были изменены
-v
подробно описывает изменения прав для каждого файла

mode – сюда прописываются какие именно права будут установлены, для всех типов пользователей. Сначала разберем по подробнее с пользователями. Система распределена на 3 типа пользователей.

  1. текущего пользователя – u сокращенно от user
  2. других пользователей, входящих в группу текущего пользователя – g т.е. group
  3. всех прочих пользователей – o т.е. other

У нас получилось ugo то есть user group other. Теперь для каждого типа пользователей определяем какие именно права будут установлены. Ознакомимся с использованием символьных команд.

r
(read) чтение файла или содержимого каталога
w
(write) запись в файл или в каталог
x
(execute) выполнение файла или его чтение
X
(special execute) выполнение, если файл является каталогом или уже имеет право на выполнение для другого пользователя
s
(setuid/gid) установленные атрибуты SUID или SGID позволяют запускать файл на выполнение с правами владельца файла или группы
t
(sticky) устанавливает некий t-бит на директорию, меняет правило таким образом, что удалить файл может только владелец этого файла

Для каждого типа пользователя используется три правила. Основные используемые правила – rwx.

И последнее из синтаксиса chmod:

file – название файла либо папки к которому выставляются данные права.

Итак, рассмотрим пример использования:

sudo chmod rwxr--r-- filename

Права выставляются по три правила трём пользователям.

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

Рассмотрим пример с использованием папки с комментариями.

Было рассмотрено использование команды в символьном виде, а теперь рассмотрим в числовом виде.

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

Варианты записи прав пользователя.

восьмеричная символьная права
0 нет прав
1 –x только выполнение
2 -w- только запись
3 -wx запись и выполнение
4 r– только чтение
5 r-x чтение и выполнение
6 rw- чтение и запись
7 rwx все права

Из таблицы напрашивается вывод следующий: символьную запись в виде r– (только чтение) можно заменить одной лишь цифрой 2. Запись rw- (чтение и запись) цифрой 6. И так далее.

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

sudo chmod rwxr--r-- file
sudo chmod 744 file

Для просмотра прав используется команда

sudo ls -l

Выводит список файлов и каталогов и информацию подробных прав пользователей.

В левой колонке – права доступа. Приставка  обозначает файл (файлы выделены), приставка d обозначает директория.

Значениями прав по умолчанию являются:

для файлов: 644 (-rw-r–r–)

для директорий: 755 (drwxr-xr-x)