Linux — операционная система, пользующаяся огромной популярностью благодаря своей гибкости, богатому функционалу и широкому спектру возможностей. К одной из таких возможностей можно отнести процесс управления правами доступа пользователей в системе.
В данной инструкции мы детально рассмотрим права пользователя в Linux, проведем их анализ и научим вас проводить их настройку. Помимо этого, мы опишем процесс изменения владельца файла или папки.
Права доступа в операционной системе Linux представляют собой ключевой элемент безопасности, определяющий, какой доступ имеют пользователи и программы к файлам и каталогам. Чтобы посмотреть права пользователя в Linux, необходимо воспользоваться следующей командой:
ls -l [путь]
Данная команда позволит вам посмотреть подробную информацию об указанном каталоге или файле в длинном формате, включая права доступа и другие данные. Пример использования команды продемонстрирован на картинке ниже.
Также, чтобы узнать права пользователя в Linux, можно воспользоваться командой:
stat [путь]
На картинке ниже изображен пример для домашней директории юзера timewebtest
:
Самих пользователей разделяют на три категории: владелец, группа и остальные. Для каждой из них выделяют три основных атрибута доступа:
r
, обозначающим английское слово «read»;w
, обозначающей английское «write»;x
, обозначающей слово «eXecute».Существуют два основных способа записи прав доступа: символьный и числовой формат. Символьный формат использует читаемые буквы и символы для представления прав доступа, в то время как числовой формат использует числа в восьмеричной системе.
Права доступа |
Символьный формат |
Числовой формат |
Чтение |
r |
4 |
Запись |
w |
2 |
Выполнение |
x |
1 |
Нет доступа |
- |
0 |
Например, права доступа к домашнему каталогу юзера timewebtest
имеют следующий вид:
Здесь, мы видим, что первым символом идет d
, который обозначает тип файла, в нашем случае — каталог («directory»). После него идут символы, обозначающие права доступа для разных категорий пользователей по порядку.
В числовом формате, права доступа из примера выше будут следующими:
rwx
соответствует числу 7 (4 за чтение + 2 за запись + 1 за выполнение).r-x
соответствует числу 5 (4 за чтение + 0 за запись + 1 за выполнение).---
соответствует числу 0 (0 за чтение, 0 за запись и 0 за выполнение).Таким образом, в числовом формате это будет 750.
vds
Теперь, когда мы знаем, что такое права доступа и для чего они нужны, необходимо разобраться с тем, как их выдать или изменить при необходимости.
Основной командой для изменения прав пользователя в Linux является chmod
. Для выполнения этой команды потребуются привилегии администратора.
Синтаксис этой команды выглядит следующим образом:
chmod [опции] [настройка_прав_доступа] [путь]
Чтобы применить изменения рекурсивно при работе с директорией для вложенных каталогов и файлов, необходимо воспользоваться опцией -R
.
Параметр настройка_прав_доступа
можно передавать двумя способами, которые мы рассматривали в прошлой главе:
Данный способ подразумевает использование комбинации букв и символов при передаче параметра «настройки прав доступа». В эту комбинацию входят:
Категория пользователей |
Обозначение |
Описание |
User |
u |
Владелец |
Group |
g |
Пользователи группы владельца |
Others |
o |
Остальные пользователи |
All |
a |
Все пользователи |
Операция |
Описание |
+ |
Добавление разрешений |
- |
Удаление разрешений |
= |
Установка указанных разрешений |
Обозначение |
Описание |
r |
Права на чтение |
w |
Права на запись |
x |
Права на выполнение |
Примеры использования команды chmod
с символьным форматом:
chmod g+w,o+rwx /home/timewebtest
Результат работы команды:
chmod a-w /home/timewebtest
Результат работы команды:
chmod u=rwx /home/timewebtest
Результат работы команды:
Числовой формат в chmod
предоставляет более точный, быстрый и гибкий способ установки прав доступа. Как мы уже упоминали в прошлой главе, каждому праву доступа присваивается числовое значение. Далее они суммируются для установки общего числового значения, которое непосредственно передается команде.
Примеры использования команды chmod
с числовым форматом:
chmod 777 /home/timewebtest
Результат работы команды:
chmod 666 /home/timewebtest
Результат работы команды:
Помимо рассмотренных выше команд, стоит также упомянуть о возможности изменения прав доступа для всех директорий и файлов внутри конкретной папки.
Изменение прав для всех каталогов внутри указанной папки:
find [путь] -type d -exec chmod [права] {} \;
Изменение прав для всех файлов внутри указанной папки:
find [путь] -type f -exec chmod [права] {} \;
При организации нового файла или каталога, их владельцем становится пользователь-создатель. В качестве группы устанавливается его основная группа.
В данном разделе инструкции мы рассмотрим две команды, с помощью которых вы сможете изменить как владельца файла или каталога, так и его группу.
Первая рассматриваемая команда – это chown
.
Синтаксис команды выглядит следующим образом:
sudo chown [опции] [владелец]:[группа] [путь]
Например, изменим владельца и группу для домашней директории и всех вложенных подкаталогов и файлов пользователя timewebtest
на root
:
sudo chown -R root:root /home/timewebtest
Для рекурсивного изменения владельца и группы во вложенных данных, мы воспользовались опцией -R
. На картинке ниже продемонстрирован результат работы команды:
Таким образом, для предоставления доступа пользователю к папке в Linux, необходимо добавить его в группу, к которой она принадлежит, либо сделать его владельцем с помощью команды chown
. Кроме того, можно установить права 777
для директории, что позволит всем пользователям, включая владельца, группу и остальных, взаимодействовать с этой папкой.
Также, стоит упомянуть, что команду chown
можно использовать конкретно для изменения владельца или конкретно для изменения группы:
sudo chown [новый_владелец] [путь]
На картинке ниже изображен пример изменения владельца директории.
sudo chown :[новая_группа] [путь]
На картинке ниже изображен пример изменения группы директории.
Помимо рассмотренной выше команды, в Linux есть еще одна — chgrp
. Она работает аналогично chown
, но предназначена только для изменения группы.
Синтаксис chgrp
следующий:
sudo chgrp [опции] [имя_группы] [путь]
Пример использования команды:
sudo chgrp sudo /home/timewebtest
Результат работы chgrp
продемонстрирован на картинке ниже:
Выгодные тарифы на VDS и VPS
В настоящей инструкции мы изучили основы управления правами доступа пользователей в операционной системе Linux. Мы научились выдавать и изменять права доступа с помощью chmod
, а также заменять владельца файла или каталога с помощью команд chown
и chgrp
. Овладев принципами работы команд chmod
, chown
и chgrp
, вы получили мощные инструменты для эффективного контроля и администрирования файловой системы.
Эти знания помогут вам более эффективно обеспечивать безопасность и организовывать рабочие процессы в Linux, делая вашу систему более гибкой и приспособленной к требованиям вашего проекта.