LINUX.ORG.RU
ФорумAdmin

Зачем нужен sudo?

 , ,


0

5

Во многих конфигуруциях/убунту, отключен рут доступ через ssh - заходишь под юзером и потом либо su без пароля, либо sudo с тем же паролем что и у юзера. В чем смысл защиты? Защита от дыр в самом ssh? Сам всегда включаю рут на серверах(дебиан). Все nginx etc под другими пользователями.

★★★★
Ответ на: комментарий от rtxtxtrx

и совсем скоро начнут приходить письма от хостера с жалобами, что с твоего сервака порты сканируют либо брутофорсят серваки.

А чё, от юзера этим типа нельзя заниматься?

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

Для того чтобы SYN-флудом заниматься нужен рут… Если рута получишь в результате брутофорса или из-за того, что кто-то выложил случайно доступы в репу, то можно запустить через cryptsetup конвертацию ext4 в luks, и можно просить выкуп на кошель BTC для расшифровки. Люди сидящие под рутом на вес золота. Наверное, не стоит их отговаривать от привычного им способа администрирования.

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

Для того чтобы SYN-флудом

Да больно надо было. Другие виды дудоса и самый обычный спам/прокси всё ещё доступны.

запустить через cryptsetup конвертацию ext4 в luks, и можно просить выкуп на кошель BTC

А без рута файлы пользователя то недоступны.

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

Так то файлы пользователя, а все интересное в других местах лежит, если админ не криворук, он запретит пользователям лазать в /var/www или /srv, а там еще всякие скрипты для бекапа в облака, где часто с кучи серверов данные собираются…

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

Что чтобы что? Тебе надо выполнить действие от другого юзера, для этого есть нативная утилита su, и никакой нужды в сторонних поделках от сомнительных личностей нет. Вот и всё.

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

как ни странно, для использования su требуется пароль от этого пользователя :)
зачем кому-либо светить паролем рута если нужно к примеру допустить всего перезапуск одного демона ??

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

Если нужен всего перезапуск одного демона то этому юзеру вообще незачем давать ssh, вынеси куда-нить в веб кнопкой.

Или, если очень хочется именно ssh, кастомный шелл с одной единственной командой безо всякой возможности что-то запустить.

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

sudo хотя бы чтобы этот su не передали кому-то еще. Зачем войной идти на sudo, строя барикады из странных и неочевидных конструкций вокруг su, если в sudo это просто работает?

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

Да что ж такое, откуда этот тупой миф взялся? sudo передать ничуть не сложнее чем su. Юзер с доступом к руту может передавать что угодно кому угодно. А неполный доступ я выше уже объяснил - у 90% пытающихся его сделать получаются дыры, а остальные 10% это мазохисты которые терпеливо жрут этот кактус вместо того чтобы сделать нормально.

строя барикады из странных и неочевидных конструкций вокруг su

Не знаю о чём ты.

если в sudo это просто работает?

Единственное, что в нём работает нормально - это режим «разрешить всё» и соответственно полный аналог su лишь с чуть другим синтаксисом.

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

В плане следов разницы тоже нет, за исключением одного случая неадекватной настройки доступов:

1) на сервере есть аккаунты юзеров с обычным шеллом но без рута

2) а так же есть два или больше аккаунтов с рутом

3) su в рута не ограничено группой wheel

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

правильно настроенный sudo не дает доступа к root.
он дозволит выполнить юзверю выполнить лишь одну, правильно прописанную в конфиге, команду от имени root и всё.

su для такого доступа потребует знать пароль root а это дыра в безопаности. sudo дает возможность четко разграничивать доступ лишь к одной команде с параметрами (к примеру systemctl restart aaa.service) и больше ни к чему. и не потребует для этого знать пароли ни root ни даже пользователя.

Единственное, что в нём работает нормально - это режим «разрешить всё» и соответственно полный аналог su лишь с чуть другим синтаксисом.

да, знаем. ты уже неоднократно говорил что «не асилил sudo», но это твои проблемы, а не sudo.

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

sudo - это su + do.

su для такого доступа потребует знать пароль

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

да, знаем. ты уже неоднократно говорил что «не асилил sudo», но это твои проблемы, а не sudo.

он git еще ненавидит, но не объясняет за что, потому что меня считает нейронной сетью

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

1) она создаёт у пользующихся ей ложное впечатление, будто можно как-то «запустить прогу от админа» (как в винде) но не перелогинивая её в рута - и тем самым насаждает виндузятные привычки и устраивает кашу в головах новичков

Вы сами поняли что написали?

2) у неё есть конфиг, но сделан он так, что практически единственная рабочая его конфигурация - это «разрешать всё», которая дублирует функционал штатной утилиты su, только наркоманским способом

Неосилили man sudoers?

3) по поводу конфига: если попытаться настроить в нём что-то, кроме «разрешить всё», то с вероятностью близкой к 100% ты получишь дырявую систему, в которой юзер, которому ты разрешил sudo на некоторые команды, всё равно в итоге окажется имеющим все рут-доступы;

Вы в этом уверены?

4) сами авторы sudo не особо вменяемы и время от времени допускают дыры в самой проге

Софт без багов есть только в палате мер и весов. И возможно вас это шокирует, но не только у sudo можно обнаружить установленный бит suid.

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

Ты видимо чего-то не понял. Повторю подробнее: если кому-то нужно только право ребута одного демона, то ему не нужно ни sudo, ни вообще системный аккаунт на этом сервере (к которому ssh).

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

Ну вот у меня есть телеграм бот, который по команде запускает/останавливает некоторые контейнеры podman. Бот запущен из-под обычного пользователя. Что ты можешь предложить вместо sudo для этой задачи, что бы не тратить три для на раскуривание манов?

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

Тут три пункта надо по очереди выполнить:

1) для начала избавиться от докеробреда

2) осознать, что подобный бот представляет из себя дыру, то есть ты по факту даёшь админам телеграма право управлять твоими демонами

3) когда избавился от докеров и если тебя устраивает вышеописанная дыра, то есть два способа её реализации:

3а) делаешь setuid-прогу, которая организует эти запуски-остановы, owner=root, group=группа твоего бота, chown 4750, и запускаешь её из бота

3б) пишешь рут-демона, который слушает unix-сокет и выполняет присланные в него команды запуска/останова демонов, права на подключение к этому сокету ставишь такие чтобы мог подключиться только твой бот

Кстати, пункт 2 можно пофиксить, если ты снабдишь каждую команду одноразовой цифровой подписью, и будешь её проверять на стороне бота, но, подозреваю, ты скажешь что это тебе неудобно и пусть лучше будет дыра.

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

1,2

Т.е. кроме ненужно тебе предложить нечего?

3а, 3б

Чем это отличается от sudo?

то есть ты по факту даёшь админам телеграма право управлять твоими демонами

Спасибо капитан. Там ничего критичного нет, во-первых, а во вторых только старт/стоп конкретных контейнеров и никаких других. В общем приемлемый уровень риска.

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

Кстати, пункт 2 можно пофиксить, если ты снабдишь каждую команду одноразовой цифровой подписью, и будешь её проверять на стороне бота, но, подозреваю, ты скажешь что это тебе неудобно и пусть лучше будет дыра.

Да выполнение части команд у меня требует ввода totp кода.

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

Т.е. кроме ненужно тебе предложить нечего?

Это не ответ на твой вопрос, а необходимые сопутствующие замечания к ситуации в целом.

Чем это отличается от sudo?

Тем, что там нет ненужного sudo. Вместо какой-то ненужной утилиты с ненужным конфигом ты можешь воспользоваться нативными возможностями ядра ОС (setuid), которые к тому же ещё и надёжнее в плане отсутствия багов и дыр.

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

Т.е. мне нужно просто написать обрезанный sudo, который потенциально менее дырявый потому что менее универсальный, и потенциально более дырявый потому что я не программист, а так рядом постоял. Теорема Эскобара какая-то

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

Не вырывай фразу из контекста.

Из какого контекста я фразу вырвал? Лишь отбросил бред про «перелогинивание программы», а в остальном цитата полная. Не звезди мне тут.

Речь про то что у программы будет uid=0 = она запущена от юзера root.

Во-первых, с чего ты взял что именно рут? sudo -u postgres psql тоже даст psql от рута работающий? А во-вторых, таки будет некий иной uid. Не того ли добивался пользователь вызывая sudo whoami вместо whoami?

Так в том и дело - не надо запускать рут-проги в не-рут окружении. Это и есть тот отвратительный виндузятный подход.

Болезный, ты бы, хотя бы, с виндой разобрался, что ли… Там, как раз, переменные окружения инициализируются «рутовые». А вот «запустить бинарник от имени одного пользователя в окружении другого» — это линуксовая тема.

Перелогинься в рута, увидь там рут-шелл и из него уже запускай.

Чтобы что? Чем будет отличаться результат $ sudo apt install mc от # apt install mc?

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

Ой, а что, руту нельзя запустить mysqld, если у него владелец мускуль и выставлен сетуид?

Рут это и есть акк для административных задач. Логинишься под своим, делаешь su -, админишь.

su - чей пароль попросит? И что, ты одинэснику, которому надо после публикации базы апач рестартовать, рута отдашь? Точно наркоман.

Во многих случаях доступ у всех полный… Учёт, конечно, добровольный, …

Кто тебя до серверов вообще допустил, стесняюсь спросить? С такой-то кашей из тараканов в голове…

У полкита была хорошая идея

Дратути, я не просто так pkexec упомянул. Т.е. никак, кроме как раздать всем рутовый пароль, админить сервера нельзя. Верно?

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

Вы там одну траву на двоих курите, что ли?

Нет, вебмакак ходит под своей учёткой. И у него есть права сделать ровно три команды: sudo systemctl restart apache2, sudo systemctl restart mysqld, да sudo reboot. А для остального пусть обращается к техническим специалистам.

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

Из какого контекста я фразу вырвал?

Из того что там был. Пояснения для дебилов я писать не собираюсь, разберёшься сам надеюсь.

Во-первых, с чего ты взял что именно рут? sudo -u postgres psql

Очередной пример ненужного sudo. Надо было писать su postgres -c psql.

Болезный, ты бы, хотя бы, с виндой разобрался, что ли… Там, как раз,

Сам разбирайся, виндузятник.

Чтобы что? Чем будет отличаться результат $ sudo apt install mc от # apt install mc?

Меньшим количеством мусора в голове у того, кто это вводит через рут-консоль.

Ой, а что, руту нельзя запустить mysqld, если у него владелец мускуль и выставлен сетуид?

Во-первых, что за наркомания? su mysql -c mysqld. Во-вторых, нет, нельзя. Если юзер mysql будет скомпрометирован, он легко снимет этот setuid да добавит в бинарник злонамеренный функционал, и таким образом устроит локальное повышение привилегий. Если ты поставишь на бинарник immutable флаг, то, вероятно, эту дыру закроешь, но это всё равно наркомания какая-то и чревато проблемами.

su - чей пароль попросит? И что, ты одинэснику, которому надо после публикации базы апач рестартовать, рута отдашь? Точно наркоман.

Я такого нигде не предлагал. Наркоман тут ты, раз усмотрел это где-то. 1с-ник вообще не должен думать ни про апач, ни про системное администрирование вообще, у него должна быть кнопка «я только что опубликовал базу», внутри которой системный администратор сервера настроил все нужные действия по этому поводу.

Т.е. никак, кроме как раздать всем рутовый пароль, админить сервера нельзя. Верно?

Рутовый пароль сам по себе не основной барьер, а вспомогательный. Основной - право делать su в рута, которое только у тех кому можно.

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

ты очень удивишься но таки да - где надо там есть.
из веб-интерфейса опенврт я могу рестарить роутер, и не только в опенврт так сделано.
глянул в божественной cisco - там тоже есть рестарт в веб интерфейсе !!
о ужас какая дыра в безопастности !! куда смотрят бодоратые админы использующие cisco….

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

борис, ты не прав !!1111 :)
есть юзверь который имеет доступ к управлению отдельных демонов в системе. ему естественно нужен доступ к системе и нужны права на редактирование конфигов и перезапуск отдельных демонов.
полный рут-доступ ему не нужен.

как это сделать через твой ущербный su, который требует пароль суперюзера или иного системного юзера ??

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

sudo позволяет делать такие вещи:

  • Запуск определённого скрипта от определённого пользователя с проверкой хэша этого скрипта (что позволяет быть уверенным в том, что пользователь, если у него есть права на (пере)запись скрипта, не пропишет в него что-то своё, чтобы обойти ограничения);
  • Запуск команд от определённого пользователя без пароля (тот же ребут, например, или чтение системного журнала);
  • Тонкая настройка окружения для каждого пользователя (причём не просто для целевого юзера, а каждого целевого юзера для каждого, кому разрешено в него заходить).
mord0d ★★★★★
()
Ответ на: комментарий от firkax

1 ) предложи альтернативу :)

чем 3а) и 3б) по защищенности отличаются от 2) ??
самописную прогу надо не только насписать но и отладить и отыскать косяки и ошибки.

она также будет светить сокетом в тырнет, как телега и также иметь setuid как sudo.
но учитывая что уровень программирования этой проги сильно слабее программистов телеги или sudo, дырок будет на порядки больше…
далее, учитывая что телега и sudo опенсорс и их код просматривали тысячи глаз и было несколько серьезных аудитов, вероятность нахождения и вычищения дырок будет на десятки порядков меньше …

как понимаешь твое предложение по качеству будет на уровне плинтуса. как от «домохозяйки, думающей что она сможет управлять миром»….

зачем такое говно предлагать ??
у меня такое чувство что ты к реальному программированию имеешь сильно меньшее отношение, чем хочешь выпендриться.

@mord0d ткни плиз где прочитать про хеш-подпись.

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

Третий раз для тормозов повторяю: для «ребута отдельных демонов» не нужна консоль вообще. Ни с sudo, ни с su, ни ещё как. Для них сойдёт как раз упомянутый тобой веб-интерфейс с веб-логином и кнопкой ребута.

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

Запуск определённого скрипта от определённого пользователя с проверкой хэша этого скрипта (что позволяет быть уверенным в том, что пользователь, если у него есть права на (пере)запись скрипта, не пропишет в него что-то своё, чтобы обойти ограничения);

Что это за ужасный костыль? Ещё и дырявый скорее всего (скрипт могут подменить хоть в середине его работы), но даже если с этим что-то сделали - оно всё равно ужасный костыль с непонятным целевым применением.

Про остальное уже выше объяснил почему оно в той реализации что в sudo не нужно.

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

самописную прогу надо не только насписать но и отладить и отыскать косяки и ошибки.

Опять приходим к уже сказанному где-то мной утверждению: если вы набираете даунов-админов то заставляйте их пользоваться sudo, ведь иначе они в силу своего даунизма напортачат ещё больше. Да, в такой формулировка с такой целевой аудиторией я согласен что он может быть полезен.

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

Капец ты рационализатор. Вместо правила в polkit или строчки в конфиге судо родил вебсервер, интерпретатор/бинарник со своим отдельным ЯП, вебстраницу/api, реализацию всего этого, потенциальные дыры в ней, когнитивную нагрузку на всех причастных и дополнительную точку отказа. Зато не sudo.

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

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

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

мож ты скажешь, что ты идеальный, что во всех познаниях являешься не нубом ?? :)

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

из веб-интерфейса опенврт я могу рестарить роутер, и не только в опенврт так сделано.

глянул в божественной cisco - там тоже есть рестарт в веб интерфейсе !!

Ты о чем-то своем пишешь. А мне просто интересно, для чего веб-макаке(с) вдруг нужно ребутать апач или мускуль, и особенно сервер целиком.

И я, кстати, не топлю за то, что судо ненужно.

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

с точки зрения системы, что веб-макака, что веб-сервер - один х.. :) левый пользователь запросивший системное высокоуровневое действие.

sudo, su, run0 и куча других вышенаписанных - всего лишь метод предоставляющая такой допуск.

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

из веб-интерфейса опенврт я могу рестарить роутер, и не только в опенврт так сделано.
глянул в божественной cisco - там тоже есть рестарт в веб интерфейсе !!

И у вас там крутится хз сколько всего и это отвечает за инфраструктуру как минимум газпрома.

anc ★★★★★
()