LINUX.ORG.RU
ФорумAdmin

Ограничение прав sudo

 , ,


0

2

Коллеги, подскажите как лучше всего настроить ограничение прав sudo. Идея такая чтобы пользователь не смог перейти в root. в /etc/sudoers.d/file я прописал

testuser ALL (ALL:ALL) ALL, !/bin/su

пользователь testuser не может выполнить sudo su, но если сделать скрипт

#!/bin/bash
sudo su

он все ровно проваливается в sudo и я не понимаю как закрыть sudo -i чтобы у него не получилось провалиться.


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

Будь осторожен — право на запуск того же vi под root аналогично предоставлению самого root (юзер просто сменит настройки системы так, чтобы стать root).

Да, и если у пользователя есть физический доступ к устройству, то при обычной разбивке без шифрования root очень легко получить через single user mode или chroot с LiveCD.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)

Определись, что ему нужно мочь. Иначе вопрос решается очень просто, отменой всех «прав».

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

Но сначала задачу стоит хотя бы сформулировать.

firkax ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

у пользователя должны быть права sudo, но их нужно ограничить

шифрование установлено, биос залочен.

visudo я тоже кстати хотел ограничить.(но это другая история)

Moroz
() автор топика
Ответ на: комментарий от Moroz

Какие права то? Ты либо пишешь конкретный список разрешённых действий (строго ограниченный списком), либо выдаёшь рута. Других вариантов нет. Любые общие или недоформулированные слова в списке автоматически приводят к получению достаточно хитрым юзером полных рут прав.

Но вообще повторюсь, идея «выдавать повышенные права» сама по себе дефективна. Рут это юзер системного администратора, все административные задачи должны делаться через него а не sudo-костылями. Практически весь системно-административный софт не в курсе, что запустивший его юзер может нуждаться в каких-то ограничениях.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 4)
Ответ на: комментарий от Moroz

не ограничить, с неправильного входа смотришь - а разрешить пользователю на беспарольное sudo только определенный набор команд.

можно прописать всю команду вместе с параметрами в sudoers на беспарольный запуск.

user ALL=(ALL) NOPASSWD: /usr/bin/usbip attach -r 192.168.13.41 -b 1-1
и тогда будет беспарольно запускаться только данная строчка $ sudo usbip attach -r 192.168.13.41 -b 1-1
запуск usbip с другими параметрами будут обрабатываться другими правилами, т.е. будет парольным.

это просто к примеру.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 5)
Ответ на: комментарий от Moroz

То есть если пользователь сможет выполнить sudo rm -rf /usr и к херам порушить ОС это нормально, но root он стать не должен?

Пойми, если у пользователя есть право на всё, кроме как становиться root, то сам root ему уже и не нужен…

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 2)
Ответ на: комментарий от Moroz

Нужен не список того, что нельзя, а список того, что можно. И очень конкретный, строгий и точный. Даже если ты разрешишь юзеру просто монтировать usb-устройства как попало, этого уже будет достаточно для получения рут-прав (причём несколькими способами). В разрешённом списке уточнять надо прямо всё.

firkax ★★★★★
()
Ответ на: комментарий от pfg

+1 2ТС вам привели один из примеров. sudo очень гибко и кастомно настраиваемая кошерная «вестч», только надо чуть-чуть документации почитать.

anc ★★★★★
()
Ответ на: комментарий от Moroz

тебе тут уже несколько раз сказали, что если тебе нужно что-то запретить, то нужно запретить все, кроме того что можно. Иначе, даже имея доступ к cp можно будет получить root-доступ к твоей тачке. В идеале, создай каких-нибудь скриптов, которые ты хочешь разрешить пользователю, помести их куда-нибудь в /usr/local/bin и разреши доступ только к ним

r0ck3r ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

У меня все пользователи и так будут админами, потому что все пользаки SRE и DevOps, тут больше вопрос стоит как это сделать, это просто проверка от дурака, я не спрашиваю как пользак может найти дырки, я и сам знаю что дырок много, просто нужно прописать минимальные правила, как я выше писал через 2-3 месяца я поставлю freeipa и все сделаю нормально.

Moroz
() автор топика
Ответ на: комментарий от Moroz

все пользователи == админы, это тебе к винде с анальногороженным UAC :)
в *никс всегда идут от обратного. прав должно минимум из необходимого.
даже работаь на сервере желательно под непрвилигированным пользователем, лишь по необходимости получая повышенные (желательно не root а конкретного применения) права

pfg ★★★★★
()