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

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

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

Если у вас есть желание детальнее разобраться в процессах настройки и обеспечения комплексной безопасности локальной и сетевой инфраструктуры, построенной на базе ОС Linux, рекомендую познакомиться с онлайн-курсом «Безопасность Linux» в OTUS. Курс не для новичков, для поступления нужно пройти .

Введение

sudo в терминале по sshЯ постоянно читаю кучу статей на тему настройки 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?

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте . Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:
  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

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

  1. Аватар

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

  2. Аватар

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

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

  3. Аватар

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

    • Zerox

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

      • Аватар

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

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

Ваш e-mail не будет опубликован.

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