Новости
Новогоднее колесо фортуны Serverspace!

НОВОГОДНЕЕ КОЛЕСО ФОРТУНЫ

Крути и выигрывай гарантированный приз прямо сейчас!

Регистрируясь, вы соглашаетесь получать электронные письма. Подробнее об условиях акции.
АМ
Александр Мельников
сентября 26, 2019
Обновлено июня 6, 2023

Разграничение прав доступа пользователей

Linux

Ограничение прав пользователей в операционной системе – тема сложная, но необходимая. В зависимости от семейства операционной системы существуют разные правила и стандарты. Рассмотрим подробнее, как это происходит в ОС Ubuntu.

Права администратора

Чтобы запускать привилегированные команды, пользователь должен обладать правами, как минимум, администратора системы. По умолчанию операционная система отключает повышенный уровень прав у любого пользователя. Чтобы его повысить, воспользуемся следующей командой.

usermod -a -G sudo username1

Теперь пользователь с именем username1 добавлен в группу sudo и является администратором для операционной системы. Ему доступны настройки ОС, а также доступ к каталогу /dev с вложениями. Большинство привилегий администраторов схоже с возможностями суперпользователя, но они неполные.

Как выставить запрет

В корпоративных информационных системах большинство ОС являются многопользовательскими. Соответственно, необходимо для каждого владельца разграничить права доступа. Для этого используется внутренняя команда chmod, например:

sudo chmod o-x $(which ls)>

Вышеуказанная строка означает, что только root имеет право запускать команду ls. Всем остальным в доступе будет отказано.

Разберем другую ситуацию. Есть пользователь с именем username1. Ему необходимо ограничить доступ к команде ls. Для этого создаем группу пользователей usergroup1, в которую перенесём всех кроме username1.

sudo groupadd usergroup1
sudo useradd -G usergroup1 <username2, username3>

Вторая строка добавляет в группу usergroup1 пользователей username2, username3 и т. д. Ограничим права на запуск команды ls. Её смогут активировать только участники usergroup1.

sudo chown :group2 $(which ls)
sudo chmod 754 $(which ls)

Теперь неучастник usergroup1 не сможет активировать ls.

Немного о файле /etc/sudoers

Sudoers содержит информацию о пользователях, которые могут использовать утилиту sudo. Чтобы открыть файл, используем специальную утилиту visudo.

visudo /etc/sudoers

Внутри содержится следующая информация:

Содержимое sudoers
Скриншот №1. Содержимое sudoers

Расскажем подробнее о строке:

Задать правила
Скриншот №2. Задать правила

%sudo означает, что к группе sudo применяется следующее правило. Если устанавливаем правила для конкретного пользователя, то % не нужен.

Первая переменная ALL расшифровывает, как применить правило ко всем IP-адресам. Второй и третий ALL – указанный пользователь или группа имеют право исполнять команды в сессии любого пользователя или группы. Четвертая переменная означает, что данный шаблон применяется ко всем командам.

Например, необходимо установить права на запуск утилиты apt get для группы admin.

%admin ALL=(ALL)NOPASSWD:/usr/bin/apt-get

Alias (псевдонимы)

Для удобства разграничения прав доступа используются алиасы. Они объединяют один или несколько значений в один параметр. Например, присвоим IP-адресу облачного хранилища более удобное имя.

Host_Alias CLOUD = 105.17.125.37

CLOUD – псевдоним, который указывается в параметрах вместо IP-адреса.

При необходимости алиасы используются для объединения пользователей в одну группу.

User_Alias Name = user1,user2,...

, где Name – псевдоним, а user1, user2 – имена пользователей. Также утилита Alias доступна и для команд, т. е. объединяем список инструкций в единую группу.

Cmnd_Alias Name = cmd1,cmd2
  • name – произвольное наименование для перечня команд;
  • cmd1, cmd2 – перечисление команд через запятую.

Например, объединим обновление пакетов в алиас:

cmnd_Alias APT = /usr/bin/apt-get update,/usr/bin/apt-get upgrade
Оценка:
5 из 5
Аverage rating : 5
Оценок: 1
220140 Минск ул. Домбровская, д. 9
+375 (173) 88-72-49
700 300
ООО «ИТГЛОБАЛКОМ БЕЛ»
700 300