[devel] sudo/wheel

Alexey V. Vissarionov gremlin на altlinux.org
Пн Ноя 12 20:15:54 MSK 2018


On 2018-11-09 14:21:32 +0400, Evgeny Sinelnikov wrote:

 >>>> В группу wheel добавляют конкретных пользователей. Так что
 >>>> все пользователи конкретны. Какие ещё конкретные возражения
 >>>> по этой конкретной настройке?
 >>> Сейчас в группу wheel добавляют в принципе тех, кому можно
 >>> позвать sudo (с control sudo wheelonly). А тут раз - и они
 >>> получают все права.
 >> Права на запуск sudo (как и любого другого suid-бинарника) надо
 >> давать отдельной группе (в данном случае sudoers). А %wheel уже
 >> использовать в /etc/sudoers
 >> То, что у нас control-файл для sudo такой же, как для su - это
 >> само по себе ошибка.
 > Группа wheel не принадлежит программе su. Это более широкая
 > группа. Поэтому, если "сейчас в группу wheel добавляют в
 > принципе тех, кого можно позвать sudo", тем кто не хочет
 > сразу "звать sudo", можно этот пакет просто не устанавливать.

Ура! Дядя Женя разрешил не ставить sudo! :-)

 > Да и нет особого смысла давать wheel без пароля рута.

Жень, ты когда в прошлый раз администрировал что-то критичное? Ну,
хотя бы такое, что в случае косяка придется несколько лет ущерб
компенсировать?

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

 > На самом деле, есть один разумный вариант - это давать wheel
 > для su в другого пользователя. Но это редкий случай. И для
 > умолчания он не подходит.

Группа wheel - админская. Какие права ей давать, в общем случае
решают сами администраторы, но в большинстве случаев это доступ
к чтению логов (0640 root:wheel /var/log/*) и конфигов. Просто
для того, чтобы лишний раз не работать с UID==0.

 > А речь идёт об умолчаниях. Я ещё раз это подчёркиваю. Я не
 > понимаю зачем давать wheel, как повод потом "позвать sudo"?
 > Почему оно сразу не должно работать? Для какого разумного
 > варианта использования этот промежуточный этап имеет смысл?

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

Поэтому su следует держать с правами 0711 root:root, а sudo - с
правами 4710 root:sudoers. И еще в httpd есть suexec - для него
полагается выставлять 4710 root:httpd

А общедоступных suid-бинарников в грамотно настроенной системе
быть не должно вообще ни при каких условиях.

 > Чем включенный парольный sudo удобен - понятно (первое, что делаю
 > я и многие пользователи Альтов после установки системы - это
 > лезут настраивать sudo). А чем настроенный вариант объективно
 > плох (помимо личных предпочтений и традиции, которые тоже
 > стоит учитывать, конечно) есть внятные аргументы?
 >
 > У меня есть. Пароль даже первого пользователя может быть не
 > так строг, как пароль рута. Но ssh для такого пользователя тоже
 > будет работать. Я бы тут предложил здесь включить ограничение
 > на строгость пароля для пользователя через ssh, при сохранении
 > возможности заходить нестрогим паролем локально.

Ты, наверное, сильно удивишься, но администраторы давно решили
эту дилемму:

gremlin на nb:~ > grep -i password /etc/ssh/sshd_config
PasswordAuthentication  no
PermitEmptyPasswords    no
PermitRootLogin         without-password

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

gremlin на nb:~ > ll /etc/ssh/sshd_config
-rw-r----- 1 root wheel 933 июн 16  2016 /etc/ssh/sshd_config

 > В целом, я не понимаю содержания спора. Я откатил sudo, до
 > оригинального состояния с этой политикой. Планирую включить в
 > Альтератор возможность её включения. Зачем спорить по поводу
 > её необходимости по умолчанию, если задача не стоит в том,
 > чтобы это утвердить?

Лично у меня к sudo ровно два пожелания:
1. Выставить для /usr/bin/sudo права 4710 root:sudoers
2. Вынести все "политики по умолчанию" в /etc/sudoers.d/*

 > Мне тут очевидно только одно - желающих следовать исходному
 > варианту в рамках личных предпочтений и сложившейся традиции
 > достаточно много. А те, кому это неудобно, в [devel] не активны
 > или, вообще, в нём отсутствуют. Я получил в багзиле пока только
 > один отзыв поддержку. В рассылке положительных отзывов не
 > было совсем.
 > Лично моё мнение тут такое - тех, кому такое умолчание для sudo
 > было бы удобно, достаточно много, но они почему-то об этом не
 > высказываются.

Значит, для этого умолчания надо сделать пакет sudo-policy-wheel
(так даже лучше, чем sudo-defaults-wheel), куда поместить файл
/etc/sudoers.d/wheel примерно такого содержания:

%wheel ALL = (ALL) ALL


-- 
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 801 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20181112/9cae16ac/attachment-0001.bin>


Подробная информация о списке рассылки Devel