Home » Разное » Sudo не нужен при работе в консоли сервера. Так ли это?

Sudo не нужен при работе в консоли сервера. Так ли это?

Захотелось сегодня порассуждать на одну популярную тему в мире linux серверов. Нужно ли использовать sudo при работе в консоли сервера, а если нужно, то зачем именно. Статью пишу чтобы порассуждать, почитать ваши отзывы и поделиться своим мнением.

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Курс стоящий, все подробности читайте по ссылке. Есть бесплатные курсы.

Введение

Зачем использовать sudoЯ постоянно читаю кучу статей на тему настройки linux серверов как в русскоязычном интернете, так и англоязычном. В статьях обычно в равной мере встречаются команды с sudo и без. Для тех, кто не знает, что это такое и о чем идет речь, кратко поясню.

С помощью sudo можно авторизовываться на сервере под обычным пользователем и выполнять команды с правами root, просто введя его пароль. То есть вы запускаете одну конкретную команду с правами root. Например, вот так в debian или ubuntu:

# sudo apt-get update

Или так в centos:

# sudo yum update

Дальше вводите пароль root и команда начинает исполняться.

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

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

Лично я захожу на сервера по ssh для выполнения административных действий. И только для этого. Мне всегда там нужны полные права. Я не очень понимаю, зачем мне каждый раз использовать sudo. Поэтому я всегда авторизуюсь под root и начинаю делать то, зачем подключился к консоли. Если права доступа там не разграничены через sudo, то сразу делаю:

# sudo su -

и начинаю выполнять поставленные задачи.

Могу понять, зачем нужно sudo, если linux ваша рабочая станция и вы за ней ежедневно работаете. Тогда удобно работать под обычным пользователем, а sudo использовать, чтобы повысить свои права для конкретной команды. На сервере я не вижу в этом смысла, если к нему подключаюсь только я.

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

В разных дистрибутивах разное отношение к sudo. Например, если в минимальной конфигурации Centos вы введете в консоли команду sudo, то увидите следующее.

# -bash: sudo: command not found

Команды sudo нет в минимальной установке, ее нужно установить:

# yum install sudo
Дополнение по centos 7. Сейчас специально поставил чистую систему, в ней sudo было. А если взять стандартный образ контейнера lxc с centos 7, то там sudo нет, хотя в контейнере ubuntu есть. Мне почему-то казалось, что в centos раньше тоже не было, но могу ошибаться.

А в debian или ubuntu у вас по-умолчанию после установки сервера разрешено подключение по ssh только для обычного пользователя. С помощью sudo можно начинать последующую настройку сервера после подключения.

Когда использовать sudo

Подозреваю, что сюда могут заглянуть какие-то продвинутые товарищи, чтобы сказать о том, что работа в консоли признак непрофессионализма. Все должно настраиваться с помощью ansible, chef, puppet и т.д. Прошу это не писать, статья не об этом, а такое мнение в определенных ситуациях может быть оправдано. Но я не претендую ни на какие лавры. Пишу о том, чем занимаюсь и что меня интересует.

Если подытожить сказанное, то sudo нужно в следующих случаях:

  1. К серверу подключаются разные администраторы. Нужно логировать их действия и разграничивать права доступа.
  2. Linux ваша рабочая системы, с помощью sudo вы запускаете редкие команды с полными правами.
  3. Sudo используется в скриптах для ограничения доступа. Абсолютно оправданное использование, сам так поступаю.

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

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом "Administrator Linux. Professional" в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:
  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

8 комментариев

  1. Аватар
    Аноним

    "Дальше вводите пароль root и команда начинает исполняться".

    Пароль пользователя же.

  2. Аватар

    На серверах работаю так
    1) захожу обычным юзером (в sshd делаю permit руту)
    2) sudo -i и работаю по "посинения"

    Согласен с вами - когда админ один - можно спокойно работать от root.

    Кстати, не совсем понял про "К серверу подключаются разные администраторы. Нужно логировать их действия".
    Вроде наоборот получается - любой админ делает sudo -i и никакого хистори нет.

    • Zerox

      sudo -i запрещаем или бьем по рукам за него. Логи храним не только локально. В общем, это как идея, не готовая реализация.

  3. Аватар
    Аноним

    ну, да))
    :~$ history
    1 uptime
    2 sudo -i

  4. Аватар

    Для меня ещё sudo удобно тем, что можно сохранить настройки окружения при работе с повышенными привелегиями, не перекрывая конфиги других админов. Хотя это с точки зрения многих не секьюрно, но лично мне удобней дать sudo -s, и получить настроенный под меня zsh с рутовыми правами, и не выслушивать нытье "опять ты руту zsh поставил, мне удобней в bash"

    ну а пароль рута традиционно в запечатанном конверте в сейфе лежит, на случай "совсем бл*, но сервер перегружать для сингл юзера нельзя"

  5. Аватар

    Даже, когда я один на сервере админ, захожу под учеткой юсера и далее повышаю привелегии с помощью sudo без ввода пароля. Разрешать ssh под root несекьюрно. Каждый раз вводить пароль root через su неудобно.

    • Zerox

      Это понятная тема, забыл об этом упомянуть. Запрет подключения root по ssh понятен и оправдан. Но я так понял, после подключения вы постоянно под root работаете.

      • Аватар

        Да, конечно, грешен )), просто каждый раз вводить sudo неудобно. Но повышаю привелегии именно через sudo без пароля. Как правило пароль root ставлю рандомный, знаков на 10 и забываю его. Опять же при разворачивании сервера в производственной среде подразумевает что там будут еще пользователи/админы, что уже обосновывает применение sudo. А если для себя - это уже наработанная привычка. Я не программист - я админ.

Добавить комментарий

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.