Задать вопрос
@alpi_bel

Как дать права root с ограничением?

Доброго дня.
Необходимо создать пользователя с root права, но с некоторыми ограничениями.
Например:
1) созданный пользователь имел root права, но не мог удалить выше стоящего пользователя(первого пользователя или главного пользователя root) или не смог забрать у него root права.
2) созданный пользователь с root права не, смог отменить созданное выше стоящего(первого сощданногр пользователя с root)
3) созданный пользователь не смог бы создавать нового пользователя без согласования с вышестоящим пользователем root.
4) созданный пользователь не смог бы остановить или удалить критически важные программы/сервисы.
Я понимаю, кто то может сказать просто не давай такому пользователю root права и все. Но ситуация такова, что все же необходимо создать такого пользователя
Как говориться, сегодня он хороший пользователь, а завтра ему что то в голову влезет и начнёт пакостить. Вот и хочу обезопасить себя..
Подскажите, как лучше все это сделать?
  • Вопрос задан
  • 261 просмотр
Подписаться 1 Средний 5 комментариев
Пригласить эксперта
Ответы на вопрос 6
@iiiopot
Помню i486DX2
root на то и root
root в Linux по определению имеет неограниченные права на систему.
Вместо этого можно создать нового пользователя и редактируя sudo (/etc/sudoers) ограничить те вещи, к которым новый пользователь не должен иметь доступ.

newuser ALL=(ALL) /bin/systemctl restart *, /bin/systemctl start *, !/bin/systemctl stop *, !/bin/systemctl disable *, !/usr/sbin/useradd, !/usr/sbin/userdel, !/usr/sbin/usermod

В этом случае пользователь может запускать и перезапускать сервисы, но не может останавливать или отключать их.

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

Есть другие решения, например использование SELinux или AppArmor. Или контейнеров или виртуализации, но лучше просто не повышать привилегии. Обычному пользователю root не нужен.
Ответ написан
Комментировать
@SunTechnik
По идеологии Linux - все есть файл.
Поэтому, если у меня появилась возможность запустить любой текстовый редактор с правами root (не важно через sudo или ещё как), я могу все перекроить в системе. Может потребоваться правка других файлов, но джина уже не остановить.

Можно через sudo дать повышенные привелегии на запуск конкретных команд, но если роль пользователя не формализована, а описана словами: админить, всего не предусмотреть. И очень быстро в список команд попадает текстовый редактор.

Включённый Selinux может усложнить жизнь злоумышленнику, но сначала попьет Вашей крови..
Ответ написан
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Необходимо создать пользователя с root права, но с некоторыми ограничениями.

Задача не имеет решения. В общем случае. Для юзера с id 0 система безопасности пропускается. Если перечень того, что должен делать Ваш "рут" формализуется - формализуйте и опишите правилами sudoers.
Ответ написан
Комментировать
NeiroNx
@NeiroNx
Программист
Лучше не давать вообще права рут.
Ответ написан
Комментировать
Под Linux в силу архаичности и неразвитости системы прав у вас есть только 2 пользователя: root и не-root.

Есть костыли типа SELinux и AppArmor, но мало кто знает, как ими правильно пользоваться. Есть Astra Linux и их модуль Parsec, они реализовали "мандатный контроль доступа", но это дорого.
Ответ написан
Комментировать
@Lx6g1ZG1
У учетных записей есть срок действия.
Его можно назначать с помощью chage для разных пользователей.
посмотреть срок действия учетной записи пользователя:
chage -l
например установить срок действия пользователя до 12 февраля:
sudo chage -E 2025-02-12 user
обнулить срок действия учетной записи пользователя (разблокировать пользователя)
sudo chage -E -1 user
Вы можете устанавливать сроки действия у учетных записей
и продливать их по мере необходимости.
Учетным записям Вы можете выдавать root права
через sudo.
Или выдавать права через sudo только на нужные команды.
Для выполнения этих команд с root правами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы