Назад | Перейти на главную страницу

Совет относительно SUID и sudo на сервере Ubuntu

Просто хочу получить совет. У меня есть root-доступ к серверу, и я хочу создать второго пользователя и выполнять все через sudo, если мне это нужно, вместо того, чтобы входить в систему как root. Файл / etc / sudoers читается как:

Defaults        env_reset
root    ALL=(ALL) ALL
%sudo ALL=(ALL) ALL

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

sudo: must be setuid root

Я понимаю, что мне нужно будет установить SUID с

chmod u+s /usr/bin/sudo (or should this be g+s?)

что позволит мне выполнить sudo.

Есть ли какие-либо соображения безопасности, которые я должен учитывать при таком подходе, и правильно ли это? Во многих сообщениях по этому поводу говорится, что это ошибка, но настроен виртуальный сервер, и мне был предоставлен только root-доступ. Я считаю /usr/bin/sudo умышленно не был установлен SUID, чтобы ограничить его запуск другими пользователями и гарантировать, что я должен его явно установить.

Вы действительно должны chmod u+s /usr/bin/sudo.

Что мне показалось странным, так это то, что все мои установки сервера Ubuntu (с 10.04LTS до 12.04LTS) всегда поставлялись с этим набором +. Так что да, это правильно. Более того, выполнение действий через sudo вместо использования root - хороший подход с точки зрения безопасности. Журнал /var/log/auth.log регистрирует все, что было сделано с помощью вызовов sudo.

Я бы посоветовал вам выполнить следующие команды:

chown root /usr/bin/sudo
chgrp root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
chmod 0440 /etc/sudoers
chmod u+s /usr/bin/sudo

Конечно, вы должны запускать их как root!