По умолчанию в различных дистрибутивах UNIX-подобных систем установлен модуль Discretional Access Control, как панель управления доступа.
Это означает, что каждый пользователь системы имеет свои права и доступ к процессам и файлам.
Заметьте, в Linux файлом может быть что угодно: устройства, файл, каталог, ссылка и т.д.
Для этих типов данных мы управляем атрибутами файла, которые содержат: владельца, группу, размер, тип.
По первому и второму параметрам мы можем отследить, кто имеет доступ и права на объект.
Ознакомиться с тарифами для VPS хостинга можно тут
Разрешения и атрибуты
В Linux-подобных системах мы можем проверить атрибуты и права с помощью следующей команды:
ls -l
Вывод команды
root@localhost:/var/log/apt# ls -l
total 344
-rw-r--r-- 1 root root 24896 Jul 4 12:19 eipp.log.xz
-rw-r--r-- 1 root root 29077 Jul 4 12:19 history.log
-rw-r--r-- 1 root root 832 May 22 13:54 history.log.1.gz
-rw-r--r-- 1 root root 9279 Sep 22 2021 history.log.2.gz
-rw-r----- 1 root adm 158845 Jul 4 12:19 term.log
-rw-r----- 1 root adm 2170 May 22 13:54 term.log.1.gz
-rw-r----- 1 root adm 6818 Sep 22 2021 term.log.2.gz
root@localhost:/var/log/apt#
Если мы хотим просмотреть атрибуты определенного файла, выполните команду:
ls -l /var/log/apt/history.log
Вывод команды
root@localhost:/var/log/apt# ls -l /var/log/apt/history.log
-rw-r--r-- 1 root root 29077 Jul 4 12:19 history.log
root@localhost:/var/log/apt#
Атрибуты файла
Давайте уточним и поясним каждый параметр на этом экране:
Сначала мы видим набор из трех триплетов, которые указывают на права доступа к выбранному файлу. Первая черточка означает, что это обычный файл, но этот знак мог бы быть символом d или l, соответственно каталогом или ссылкой;
Второй параметр — три следующих знака rw-, которые соответствуют правам владельца: чтение, запись и выполнение, поэтому следующая тройка предназначена для группы владельца и других пользователей;
Число 1 означает количество жестких ссылок;
Атрибут root root указывает на владельца и его группу;
Далее указывается размер файла в байтах, данные о последних изменениях и имя файла.
Каждый отдельный файл связан с одним пользователем (владельцем) и определенной группой. При создании файла его владельцем становится тот, кто его создал, и для этого файла назначается определенная группа. В Linux права доступа делятся на три основные категории: пользователь, группа и другие. Каждая категория может получать отдельные разрешения на чтение, запись и выполнение. Эти права могут быть изменены с помощью утилиты chmod при условии, что пользователь имеет необходимые полномочия и явные разрешения на это.
Разрешения также могут быть представлены в виде суммы чисел. Это мы используем для назначения прав: 4 — для чтения, 2 — для записи и 1 — для выполнения:
chmod 755 history.log
Если мы хотим полностью запретить все виды доступа для всех категорий пользователей, то мы должны ввести следующую команду:
chmod 000 history.log
Команда chmod используется для изменения прав доступа и поддерживает как символьное, так и числовое представление.
Например, при использовании команды chmod u+w filename владельцу присваивается право на запись.
В данном контексте u означает владельца, g — группу, o — других, а a — всех пользователей. Далее знаки +, – или = используются для добавления, удаления или явного определения разрешений для пользователей.
chmod u+rwxhistory.log && chmod go-rwx history.log
Если необходимо сохранить права на запись для других и групповых пользователей, но при этом защитить их от удаления, то используйте приведенную ниже команду:
chmod +t history.log