В чем разница между sudo и su?

Несколько дней назад я получил запрос от Мигеля, постоянного читателя блогов и компульсивного комментатора, относительно в чем именно разница между Sudo y su. В частности, Мигеля беспокоило, был ли один метод более безопасным, чем другой. Так получилось, что я читал там, что sudo было недостаточно безопасно и хотел узнать больше. Это еще один пост, посвященный тем, кто просил больше статей о терминальные загадки.

Su

Программа su позволяет использовать оболочку другого пользователя без выхода из текущего сеанса. Он обычно используется для получения прав root для административных операций без необходимости выхода из системы и повторного входа в систему. В некоторых средах рабочего стола, включая GNOME и KDE, есть программы, которые графически запрашивают пароль перед тем, как позволить пользователю выполнить команду, которая обычно требует такого доступа.

Название су происходит от английского sинститут uбыть (заменить пользователя). Есть также те, кто делает его производным от sуперuser (суперпользователь, то есть пользователь root или администратор), поскольку он обычно используется для принятия роли системного администратора.

Когда ты бежишь, su Он запрашивает пароль учетной записи, к которой вы хотите получить доступ, и, если он принят, предоставляет доступ к этой учетной записи.

[парень @ localhost] $ ваш пароль: [root @ localhost] # выход выйти из системы [парень @ localhost] $

Если не указывать пользователя, доступ к нему осуществляется как администратор. Однако также можно передать другое имя пользователя в качестве параметра.

[парень @ localhost] $ su mongo Пароль: [mongo @ localhost] # выход выйти из системы [парень @ localhost] $

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

Широко распространенный вариант - использовать su с последующим тире. Таким образом, чтобы войти в систему как root, вы должны ввести его - и войти как другой пользователь ваш - другой пользователь. Разница между использованием скрипта или нет? Рекомендуется использовать этот сценарий, поскольку он имитирует вход в систему с этим пользователем; следовательно, он выполняет все файлы запуска этого пользователя, изменяет текущий каталог на HOME этого пользователя, изменяет значение некоторых системных переменных, адаптируя их к новому пользователю (HOME, SHELL, TERM, USER, LOGNAME и др.), и другие больше вещей.

Системный администратор должен быть очень осторожен при выборе пароля для учетной записи root / администратора, чтобы избежать атаки непривилегированного пользователя, запускающего su. В некоторых Unix-подобных системах есть группа пользователей под названием колесо, в которую входят единственные, кто может выполнять su. Это может уменьшить или не снизить проблемы безопасности, поскольку злоумышленник может просто захватить одну из этих учетных записей. В su GNU, однако, не поддерживает использование этой группы; это было сделано по философским причинам.

Судо

Связанная команда, называемая Sudo, выполняет команду от имени другого пользователя, но соблюдая ряд ограничений, по которым пользователи могут выполнять какие команды, от имени каких других пользователей (обычно указывается в файле / и т.д. / sudoers).

С другой стороны, в отличие от su, Sudo запрашивает у пользователей собственный пароль вместо необходимого пользователя; Это позволяет делегировать команды пользователям на других машинах без необходимости совместного использования паролей, что снижает риск оставить терминалы без присмотра.

Проблемы Sudo: льготный период

Преимущество Sudo в отношении su заключается в том, что он выполняет только запрошенную команду, выдавая себя за другого пользователя, без фактического изменения текущего пользователя. Это означает, что можно выполнить команду как администратор, и в следующую секунду он получит привилегии пользователя, которого он использовал раньше ... или почти.

Некоторые считают нарушением безопасности тот факт, что Sudo предоставить «льготный период», который позволяет пользователю выполнять команды от имени другого пользователя без необходимости многократно вводить sudo перед командой и паролем после ее выполнения. После этого «льготного периода» Sudo снова спросит у нас пароль.

Это «плохо», в основном потому, что кто-то может захватить наш компьютер после того, как мы введем пароль sudo и пока активен «льготный период», создайте АВАРИЮ.

К счастью, можно отключить «льготный период», что повысит безопасность вашей системы. Просто добавьте одну строчку в файл / и т.д. / sudoers:

судо нано / и т. д. / sudoers

И в конец файла добавьте следующую строку:

По умолчанию: ВСЕ timestamp_timeout = 0

Изменение вступает в силу немедленно, без перезапуска системы.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   помощь сказал

    Фактически, ЕСЛИ вы можете войти с правами администратора с помощью sudo и остаться там, как с su -, для этого вам нужно написать: sudo -s, таким образом изменив текущего пользователя и оставив льготное время в качестве шутки (поскольку вы можете оставаться как это сколько хочешь, как с твоим)

  2.   Микель Майоль и Тур сказал

    Спасибо за упоминание, но настоящая заслуга в чате Sabayon, которым я больше не пользуюсь, потому что у меня сломался жесткий диск, и я предпочел вернуться в Ubuntu.

    Причина, по которой они мне сообщили, заключалась в том, что иногда при выполнении определенных конфигураций sudo они не получают абсолютных разрешений и остаются неправильно настроенными. И что, «войдя в систему» ​​с su как root для задач обновления и обслуживания, вы предотвратите это.

    Затем я написал вам по электронной почте, потому что обещал поделиться этим открытием, которое мне показалось нетривиальным.

    Поскольку Ubuntu по умолчанию устанавливается без пользователя root, просто запустите

    "Sudo passwd root"

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

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

  3.   Указатель Nill сказал

    Вы можете получить доступ к файлу / etc / shadow и изменить хэш пароля root на хеш пароля обычного пользователя, а затем изменить пароль для root ??? В другой раз пробую то же самое….

  4.   Давайте использовать Linux сказал

    Конечно. Это не эксклюзивно для Fedora.

  5.   мфколлф77 сказал

    Тогда из двух можно их установить? Я думал, что «СУ» есть только в ФЕДОРА.

  6.   Диего Кисай Альба Галларт сказал

    Очень хорошая информация, с этим, несомненно, у многих уйдут сомнения, потому что я знаю нескольких, у кого есть такие сомнения.

  7.   Алекс сказал

    В ubunto я думаю, что помню, что вы не можете использовать команду su (чтобы войти как пользователь root)

  8.   Хазан Перес сказал

    Что ж, чтобы «восстановить» пароль root (фактически, любой другой пароль), вы можете совершить «атаку» на файл системного пароля с помощью John The Ripper. Больше не буду об этом говорить.

    Может быть, есть другие способы ... Может быть, изменить пароль, введя "sudo su", а затем команду "passwd". Было бы интересно посмотреть, что ответят другие ...

  9.   Давайте использовать Linux сказал

    Точно!

  10.   Давайте использовать Linux сказал

    Правильно ... Я должен поблагодарить Мигеля Майоля и Тур ... он был тем, кто придумал. 🙂
    Ура! Павел.

  11.   Босс сказал

    Спасибо, как всегда, большой вклад. Мы ценим это.

  12.   Давайте использовать Linux сказал

    Спасибо, босс! Объятья! Павел.

  13.   Херонимо Наварро сказал

    Разница между su и sudo - это do

  14.   Эрик сказал

    Я забыл пароль root, к счастью, я могу использовать sudo, а чтобы использовать su, я использую sudo su, и он не запрашивает пароль (?)
    Кто-нибудь знает, как узнать пароль root (у меня есть доступ к root через sudo)?

    1.    Marvergarab сказал

      судо пароль

  15.   Давайте использовать Linux сказал

    Ха! Очень умный!

  16.   Фабиан Паис сказал

    тот, кто хочет восстановить пароль root, будет "sudo passwd root", и там он попросит вас ввести новый

  17.   alex-pilloku@hmail.com сказал

    привет как твоя жизнь

  18.   Синфлаг сказал

    Извините, но, используя команду su, вот так:

    su -c "command" - это то же самое, что использовать sudo без льготного периода. Я не вижу необходимости в sudo.

    НАСТОЯЩЕЕ использование sudo заключается в том, чтобы дать определенным пользователям возможность использовать ту или иную команду, он больше используется в компаниях, чтобы не приходилось выполнять chroot, что невозможно сделать с su.

  19.   Якардис сказал

    Уважаемый, мне нужно сделать Linux TP, и я должен ответить на несколько простых вопросов. Может, они мне помогут. Спасибо сейчас:

    Какая команда позволяет нам устанавливать / удалять / изменять пакеты debian?
    Какая команда позволяет нам легче управлять установкой
    пакеты в debian?
    Какая команда позволяет устанавливать пакеты rpm?
    Какой вариант мы используем для удаления пакета?
    В каком каталоге расположены репозитории yum?
    Для чего ням?
    Какую опцию мы используем для поиска пакета с yum?
    Какую опцию мы используем для удаления пакета?
    Какую опцию мы можем использовать для обновления системы?
    Какие буквы обозначают разрешения?
    Что означает каждый из них?
    Какие команды перечисляют права доступа к файлу?
    На какие три группы делятся разрешения?
    Какие есть два способа реализовать разрешения?
    Какая система счисления используется в разрешениях?
    Какой вес у этих букв?
    Что такое специальные разрешения?
    Какие существуют особые разрешения и для чего нужны пользователи?
    Какие команды я использую для изменения разрешений?
    Какие параметры я использую, чтобы дать файлу права на выполнение?
    Какие параметры используются для предоставления разрешений на чтение только группе?
    Какие параметры используются для предоставления разрешений на чтение / запись группе «Остальные» и удаления записи для пользователя, владеющего файлом?
    Какие разрешения создаются по умолчанию для файлов и каталогов?
    Какую команду мы используем для проверки?
    Как изменить маску по умолчанию?
    Как сделать используемую маску другой? (Используйте маску по умолчанию, которая оставляет только владельцам все разрешения.)
    Какая команда перечисляет процессы? Укажите различные параметры и их использование.
    С чего все начинается?
    Перечислите процессы, соответствующие зарегистрированному пользователю.
    Составьте список всех процессов системы.
    Какие варианты использовать для получения дополнительной информации?
    Список всех процессов, которые используются в терминале
    В каком варианте перечислены процессы и их зависимости?
    Объясните, что такое родительско-дочерний процесс и как его идентифицировать
    Какая команда перечисляет процессы в виде деревьев?
    Какая команда отслеживает процессы в реальном времени?
    Контролируйте только один процесс
    Какая команда показывает использование памяти?
    Какой параметр показывает память в мегабайтах?
    Какой параметр делает это в интервалах?
    Какая команда показывает информацию о времени, когда команда готова?
    Какую команду я использую для уничтожения процессов?
    Что нужно сделать в этих процессах для завершения?
    Какие типы сигналов наиболее распространены?
    Перечислите типы поддерживаемых сигналов.
    В терминале выполните тест vi, а затем перейдите к другому терминалу, найдите процесс и завершите его сигналом 15.
    В чем разница между сигналом 9 и 15?
    Какой из них работает по умолчанию?
    Почему процесс выполняется в фоновом режиме? А на переднем плане?
    Запустите vi test, а затем нажмите ctrl + z, что случилось?
    Повторите тест vi, ctr + z, 4 раза, как мне закончить то, что я провалил?
    Переведите один из процессов на передний план и закройте vi.
    Какой параметр команды мы выполняем, чтобы он не занимал оболочку?
    Какая команда изменяет приоритеты уже запущенного процесса? Как бы вы изменили приоритет работающего терминала?
    Какие существуют уровни ценностей и какова их иерархия?
    Откройте файл / etc / passwd и посмотрите, какой у него уровень приоритета.
    Измените уровень приоритета на 4, а затем на 25. Можете ли вы назначить оба? Зачем?
    Составьте список процессов с их приоритетными значениями.
    Какая команда отслеживает все запущенные процессы?

  20.   и т.п. сказал

    Здравствуйте, я хочу отключить sudo, как и я. Получаю следующее:
    [sudo] пароль для xxx:
    xxx отсутствует в файле sudoers. Об этом инциденте будет сообщено.

    поскольку я отключил его, так как я использую su в debian

    1.    давайте использовать Linux сказал

      Привет ек!

      Думаю, будет лучше, если вы зададите этот вопрос в нашей службе вопросов и ответов под названием Просить DesdeLinux чтобы все сообщество могло помочь вам с вашей проблемой.

      Обнимаю, Пабло.

  21.   Бертольдо сказал

    Здравствуй. Я использовал команду температуры жесткого диска в Linux Mint: 'sudo hddtemp / dev / sda', она запрашивает пароль и дает ожидаемый результат.
    но затем при выполнении в том же терминале 'hddtemp / dev / sda' он сообщает мне, что Permission Denied.
    Итак, у меня не действует льготный период, почему?

  22.   Бертольдо сказал

    Привет, блог.
    Я также обнаружил, что когда дистрибутив установлен (например, ubuntu, linux mint), он запрашивает пароль администратора.
    А в графическом интерфейсе центра управления я воспользовался возможностью изменить пароль пользователя.
    Итак, теперь, используя «su -», он запрашивает пароль, который не является паролем моего текущего пользователя, а тем, который я использовал при установке дистрибутива, который по-прежнему является пользователем root или администратором.
    Это может привести к тому, что многие пользователи забудут настоящий пароль администратора.

  23.   Кендалл Давила сказал

    Здравствуйте, ваше объяснение отличное, очень четкое, краткое и лаконичное. Спасибо за вклад