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

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

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

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

Введение

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?

Онлайн курс Основы сетевых технологий

Теоретический курс с самыми базовыми знаниями по сетям. Курс подходит и начинающим, и людям с опытом. Практикующим системным администраторам курс поможет упорядочить знания и восполнить пробелы. А те, кто только входит в профессию, получат на курсе базовые знания и навыки, без воды и избыточной теории. После обучения вы сможете ответить на вопросы:
  • На каком уровне модели OSI могут работать коммутаторы;
  • Как лучше организовать работу сети организации с множеством отделов;
  • Для чего и как использовать технологию VLAN;
  • Для чего сервера стоит выносить в DMZ;
  • Как организовать объединение филиалов и удаленный доступ сотрудников по vpn;
  • и многое другое.
Уже знаете ответы на вопросы выше? Или сомневаетесь? Попробуйте пройти тест по основам сетевых технологий. Всего 53 вопроса, в один цикл теста входит 10 вопросов в случайном порядке. Поэтому тест можно проходить несколько раз без потери интереса. Бесплатно и без регистрации. Все подробности на странице .
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

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

Автор 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 не будет опубликован.

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