Различия между командами sudo и su
В дистрибутивах Linux существует несколько способов получения привилегий суперпользователя или root. Два наиболее распространенных способа — использование команд sudo и su. Оба этих метода позволяют временно получить повышенные привилегии, но имеют некоторые важные различия в использовании и функциональности. Давайте рассмотрим эти различия более подробно.
Если вы не знаете кто такой суперпользователь и зачем он нужен в дистрибутивах Linux, то прочтите вначале статью про пользователя root, которая ранее выходила на канале.
SUDO (Substitute User and do)
sudo представляет собой команду, которая позволяет обычному пользователю выполнить команды с привилегиями суперпользователя или правами доступа любого другого пользователя. Она широко используется в системах Linux, чтобы ограничить доступ к привилегиям root только определенным пользователям. При использовании sudo, пользователю может быть разрешено выполнение команды суперпользователя после ввода своего собственного пароля, а не пароля root.
- Более безопасно, так как ограничивает доступ к привилегиям root только необходимым командам и пользователям.
- Позволяет аудитить и логировать действия пользователей с привилегиями суперпользователя.
- Предоставляет более гибкую систему управления привилегиями, так как администраторы могут настраивать разрешения для конкретных команд и пользователей.
Использование sudo
Чтобы выполнить команду с привилегиями суперпользователя с помощью sudo, необходимо ввести следующую конструкцию:
После ввода этой команды вас попросят ввести свой собственный пароль. После успешного подтверждения пароля команда будет выполнена с привилегиями суперпользователя.
Стоит помнить, что выполнять команду sudo могут те пользователи, которые состоят в одноименной группе.
Для того, чтобы добавить пользователя в нее можно ввести команду:
Ввод и выполнение команды возможны либо от пользователя root, либо от пользователя уже состоящего в группе.
Посмотреть группы, в которых состоит ваш пользователь можно при помощи команды groups. Видим, что пользователь добавлен в группу sudo.
Вторым способом добавления пользователя в группу является использование команды visudo, которая после ввода откроет для редактирования файл, находящийся по пути /etc/sudoers. Но, чтобы воспользоваться visudo нужно либо войти под аккаунтом суперпользователя (смотрите текст ниже), либо указать перед названием sudo.
После ввода откроется файл sudoers для редактирования, в котороый нужно внести следующую строку:
После сохранения файла у пользователя, которого вы укажите появится возможность использовать команду sudo в терминале. Помните, что редактировать файл sudoers необходимо только при помощи команды visudo! Так как некорректные данные внесенные в него могут привести к неполадкам в работе дистрибутива. Я предпочитаю использовать первый способ добавления пользователя в sudoers.
Примечание: на дистрибутиве Debian отсутствует команда sudo после установки и попытка ее использования вызовет ошибку. Чтобы установить утилиту sudo (да, команды в Linux являются названиями одноименных утилит или программ) необходимо ввести в терминале команду apt install sudo, после чего произвести действия по добавлению пользователей в группу sudo.
Администратор и суперпользователь
Итак, при установке системы вы указывали имя пользователя и пароль, и я сказал, что указанный пользователь после установки будет администратором системы. Так же я сказал, что использование учётной записи администратора не несёт практически никакой угрозы безопасности системы. Теперь постараюсь объяснить всё немного поподробней.
Суперпользователь
Во всех системах на базе Linux всегда есть один привилегированный пользователь, который зовётся root или по-русски суперпользователь. Полномочия этого пользователя не ограничены ничем, он может делать в системе абсолютно всё, что угодно. Кроме того, большинство системных процессов работают от имени root. Понятное дело, использование такого всемогущего пользователя крайне опасно, ибо любая ошибка может привести к катастрофическим последствиям, вплоть до полного уничтожения системы. Обычный же пользователь в Linux вообще говоря никак не может повлиять на работоспособность системы, в частности, не может устанавливать и удалять программы, управлять системными настройками и изменять файлы вне своего домашнего каталога. Поскольку использование суперпользователя крайне опасно, в Ubuntu он спрятан внутри системы, а управлением занимаются обычные пользователи со специальными административными привилегиями 1) .
Администратор
Администратор в Ubuntu по умолчанию может по запросу делать всё то же самое, что и суперпользователь 2) , однако случайно что-то испортить из-под администратора нельзя, т.к. перед выполнением каждого опасного действия система спрашивает у пользователя-администратора его пароль. Вообще говоря, администратор является обычным пользователем, однако при необходимости он может вмешаться в работу системы, но для этого ему потребуется ввести свой пароль.
Главное отличие администратора от суперпользователя как раз и заключается в необходимости вводить пароль для выполнения любого потенциально опасного действия. Если система спрашивает у вас пароль, значит вы собираетесь как-то вмешаться в её работоспособность. Поэтому элементарная внимательность спасёт вас от ошибок, поскольку, я надеюсь, сложно ввести пароль и не заметить этого.
Теория теорией, но вам наверно интересно, как же это всё выглядит на практике? Давайте попробуем установить какую-нибудь программу. Запускаем Центр приложений Ubuntu (нажимаем на его значок в панели запуска). Ищем нужную программу либо через строку поиска, либо по категориям. Давайте установим Midnight Commander 3) . Набираем в стоке поиска mc, выбираем из списка нужную программу и нажимаем «Установить». Поскольку установка программного обеспечения — операция потенциально опасная, то, для ее выполнения, нужны права суперпользователя. О чем система вам незамедлительно сообщит:
Если вы введете правильно (и если вы являетесь администратором, конечно), то программа успешно установится. Если же вы не являетесь администратором (или забыли пароль), то система даст вам возможность три раза ввести пароль, после этого появится окно с сообщением о том, что у вас недостаточно прав и ничего установить у вас не получится:
Привилегии администратора нужны не только для установки и удаления программ, но и для запуска системных приложений, внесения изменений, которые могут затронуть работоспособность системы и т.п. Попробуем добавить нового пользователя. Запускаем «Параметры системы», находим пункт «Учетные записи»:
Видите, вы не можете ничего изменить, поскольку поля добавления и удаления пользователей заблокированы. Однако в правом верхнем углу экрана находится кнопка «Разблокировать». Нажмите её, система снова спросит ваш пароль:
После ввода пароля, поле добавления пользователей стало активным:
Связки ключей
Есть ещё один интересный механизм, связанный с обеспечением безопасности. Дело в том, что для хранения различных пользовательских паролей в Ubuntu используются так называемые связки ключей (keyrings). Весь этот механизм служит одной цели — никто, кроме конкретного пользователя, не должен иметь доступа к пользовательским паролям. Связка ключей — это собственно зашифрованный контейнер для хранения паролей, для доступа к которому строго говоря тоже нужен пароль. Кстати, связки ключей не имеют ничего общего с административными правами. Они принадлежат конкретному пользователю и вообще не зависят от прав доступа к системным параметрам.
Вообще система связок ключей достаточно прозрачна и незаметна в использовании, однако иногда вы всё же можете на неё неожиданно наткнуться. Поэтому на всякий случай имейте ввиду: каждая связка ключей блокируется паролем, соответственно, только после его ввода можно разблокировать это связку и получить доступ к её содержимому. Однако среди всех связок ключей есть одна по умолчанию, которая разблокируется при входе в систему конкретного пользователя, соответственно, никаких дополнительных паролей вводить для доступа к ней не нужно. Обычно все приложения используют именно связку ключей по умолчанию (которая в Ubuntu называется login ), но иногда некоторые пытаются создать свою собственную. В этом случае вам сначала потребуется ввести пароль для новой связки, а потом нужно будет вводить его каждый раз, когда потребуется к ней доступ. Что не очень удобно. Поэтому если у вас какое-то приложение просит пароль для разблокирование связки ключей, то можете обратить внимание на дополнительные параметры в диалоге ввода пароля. Там будет галочка — разблокировать при входе в систему:
Если её установить, то больше вам не потребуется вводить пароль для доступа к этой связки ключей, она так же, как и связка по умолчанию, будет разблокироваться при логине пользователя.
Для управления паролями и связками ключей, а так же ключами шифрования, в Ubuntu существует специальная утилита Пароли и ключи шифрования, называется она seahorse
Однако ещё раз повторюсь — в большинстве случаев вам не потребуется явно управлять паролями, за вас всё сделает система. Но иногда всё же знание механизма связок ключей оказывается полезным.
Что ж, надеюсь вы немного разобрались с тем, как управлять вашей новой системой. Если же всё вышеописанное показалось вам китайской грамотой, то запомните одну простую вещь: в Ubuntu у каждого пользователя есть только один пароль, и когда у вас система запрашивает авторизацию, всегда вводите именно его 4) . Если у вас будут права на доступ к запрашиваемому функционалу, то вы получите к нему доступ, если не будет — то не получите, всё просто. Никаких дополнительных паролей для доступа к каким-либо функциям системы в Ubuntu нет. Если вы так и не поняли смысла вводить один и тот же пароль несколько раз, то перечитайте эту статью с начала. А теперь пора отдать должное истории развития Linux и рассказать про основы использования терминала:
Грубо говоря, в Linux есть два типа пользователей: root и все остальные. root может всё, а все остальные только то, что им разрешено в настройках.
Полномочия администратора можно ограничить через параметры sudo и системные настройки прав доступа. О sudo через статью, а о её настройках можно почитать хотя бы на нашей вики.
Это простой файловый менеджер, который работает даже в консоли. Он может понадобиться вам, если вы что-то сломаете и не сможете загрузить графическую оболочку, а консольные команды для работы с файлами вызывают у вас ужас.
Это ни в коем случае не касается различных интернет-ресурсов, имеется ввиду только работа непосредственно с Ubuntu.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2018 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.