sudo линукс что это
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Как использовать команду sudo в Linux
Sudo означает SuperUser DO и используется для доступа к файлам и операциям с ограниченным доступом. По умолчанию Linux ограничивает доступ к определенным частям системы, предотвращая компрометацию конфиденциальных файлов.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Как использовать команду sudo
Установка sudo
Пакет sudo установлен в большинстве дистрибутивов Linux.
Чтобы установить sudo используйте для Ubuntu и Debian:
или для CentOS и Fedora
sudo была разработана как способ временного предоставления пользователю административных прав. Чтобы заставить ее работать, используйте sudo перед ограниченной командой, которую можно выполнить только из под рута. Тогда система запросит ваш пароль. После его ввода система запускает команду.
Синтаксис
Опции
sudo можно использовать с дополнительными параметрами:
Примечание. Оставаться в системе как администратор ставит под угрозу безопасность сервера. Раньше администраторы использовали su (substitute user) для временного переключения на учетную запись администратора. Однако для команды su требуется вторая учетная запись пользователя и пароль, что не всегда возможно.
Предоставление привилегий sudo
Рассмотрим как добавить пользователя в эту группу.
RedHat и CentOS
Debian и Ubuntu
Использование visudo и группы sudoers
Используйте команду visudo для редактирования файла конфигурации:
Сохраните и выйдите из файла.
Вот разбивка предоставленных привилегий sudo :
Тайм-аут пароля sudo
Если вы хотите изменить время ожидания для определенного пользователя, то добавьте имя пользователя.
Примеры sudo в Linux
Основное использование Sudo
1. Откройте окно терминала и попробуйте выполнить следующую команду:
2. Вы должны увидеть сообщение об ошибке. У вас нет необходимых разрешений для запуска команды.
3. Попробуйте ту же команду с sudo:
4. При появлении запроса введите свой пароль. Система выполнит команду и обновит репозитории.
Выполнить команду от имени другого пользователя
1. Чтобы запустить команду от имени другого пользователя, введите в терминале следующую команду:
2. Система должна отображать ваше имя пользователя. Затем выполните следующую команду:
3. Введите пароль для другого пользователя, и команда whoami запустится и отобразит другого пользователя.
Переключиться на root пользователя
Эта команда переключает вашу командную строку на оболочку BASH от имени пользователя root :
Ваша командная строка должна измениться на:
Значение имени хоста будет сетевым именем этой системы. Имя пользователя будет текущим именем пользователя, вошедшим в систему.
Выполнить предыдущие команды с помощью sudo
В командной строке Linux хранятся записи о ранее выполненных командах. Доступ к этим записям можно получить, нажав стрелку вверх. Чтобы повторить последнюю команду с повышенными привилегиями, используйте:
Это также работает со старыми командами. Укажите исторический номер следующим образом:
В этом примере повторяется 6-я запись в истории с командой sudo.
Запуск нескольких команд в одной строке
Соедините несколько команд вместе, разделенных точкой с запятой:
Добавить строку текста в существующий файл
Заключение
Теперь вы узнали про команду sudo и про то, как ее использовать.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Полезно?
Почему?
😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.
😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.
Команда Sudo в Linux
Команда sudo позволяет запускать программы от имени другого пользователя, по умолчанию root. Если вы проводите много времени в командной строке, sudo — одна из команд, которую вы будете использовать довольно часто.
Использование sudo вместо входа в систему с правами root более безопасно, поскольку вы можете предоставлять ограниченные административные привилегии отдельным пользователям, не зная их пароля root.
Установка Sudo (команда sudo не найдена)
Пакет sudo предустановлен в большинстве дистрибутивов Linux.
Если sudo не установлен, вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.
Установите Sudo в Ubuntu и Debian
Установите Sudo на CentOS и Fedora
Добавление пользователя в Sudoers
В Debian, Ubuntu и их производных членам группы sudo предоставляется доступ sudo:
Учетная запись пользователя root в Ubuntu по умолчанию отключена из соображений безопасности, и пользователям рекомендуется выполнять системные административные задачи с помощью sudo. Первоначальный пользователь, созданный установщиком Ubuntu, уже является членом группы sudo, поэтому, если вы используете Ubuntu, есть вероятность, что пользователь, с которым вы вошли в систему, уже получил права sudo.
Например, чтобы позволить пользователю linuxize запускать только команду mkdir как sudo, введите:
и добавьте следующую строку:
Вы также можете разрешить пользователям запускать команды sudo без ввода пароля :
Как использовать судо
Синтаксис команды sudo следующий:
Команда sudo имеет множество параметров, которые управляют ее поведением, но обычно она используется в самой простой форме, без каких-либо параметров.
Чтобы использовать sudo, просто добавьте к команде префикс sudo :
Где command — это команда, для которой вы хотите использовать sudo.
Sudo прочитает файл /etc/sudoers и проверит, есть ли у вызывающего пользователя sudo Assessment. При первом использовании sudo в сеансе вам будет предложено ввести пароль пользователя, и команда будет выполнена от имени пользователя root.
Например, чтобы перечислить все файлы в /root каталоге /, вы должны использовать:
Тайм-аут пароля
Установите тайм-аут по умолчанию, добавив строку ниже, где 10 — это время ожидания в минутах:
Если вы хотите изменить метку времени только для определенного пользователя, добавьте следующую строку, где user_name — это соответствующий пользователь.
Выполнить команду от имени пользователя, отличного от root
Существует ошибочное мнение, что sudo используется только для предоставления прав root обычному пользователю. Фактически, вы можете использовать sudo для запуска команды от имени любого пользователя.
В следующем примере мы используем sudo для запуска команды whoami от имени пользователя «richard»:
Команда whoami напечатает имя пользователя, запустившего команду:
Как перенаправить с помощью Sudo
Если вы попытаетесь перенаправить вывод команды в файл, для которого у вашего пользователя нет прав на запись, вы получите ошибку «Permission denied».
Выводы
Вы узнали, как использовать команду sudo и как создавать новых пользователей с привилегиями sudo.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии.
Администратор в Ubuntu, или Что такое sudo
Содержание
В любой Linux-системе обязательно есть один привилегированный пользователь — root. Этот пользователь имеет права на выполнение любых действий, удаление любых файлов и изменение любых параметров. Как-то ограничить свободу действий root практически невозможно. С другой стороны, все остальные пользователи системы обычно не имеют большинства необходимых прав, например, прав на установку программ, поскольку это является административной операцией, права на которую есть только у root. Ещё одной распространённой операцией, доступной только суперпользователю, является копирование и изменение файлов в системных папках, куда обычный пользователь доступа не имеет.
В Ubuntu по умолчанию root аккаунт вообще отключён, т.е. вы никаким способом не сможете попасть под root, не включив его. root именно что отключён, т.е. он присутствует в системе, под него всего лишь нельзя зайти. Если вы хотите вернуть возможность использовать root, смотрите ниже пункт о включении root аккаунта.
Что такое sudo
sudo — это утилита, предоставляющая привилегии root для выполнения административных операций в соответствии со своими настройками. Она позволяет легко контролировать доступ к важным приложениям в системе. По умолчанию, при установке Ubuntu первому пользователю (тому, который создаётся во время установки) предоставляются полные права на использование sudo. Т.е. фактически первый пользователь обладает той же свободой действий, что и root. Однако такое поведение sudo легко изменить, об этом см. ниже в пункте про настройку sudo.
Где используется sudo
Однако не все программы, требующие административных привилегий, автоматически запускаются через sudo. Обычно запускать программы с правами администратора приходится вручную.
Запуск графических программ с правами администратора
Допустим, нам необходимо запустить файловый менеджер Nautilus с правами администратора, чтобы через графический интерфейс как-то изменить содержимое системных папок. Для этого необходимо ввести в диалог запуска приложений команду
Запуск программ с правами администратора в терминале
Для запуска в терминале команды с правами администратора просто наберите перед ней sudo :
Система какое-то время помнит введённый пароль (сохраняет открытой sudo-сессию). Поэтому при последующих выполнениях sudo ввод пароля может не потребоваться. Для гарантированного прекращения сессии sudo наберите в терминале
Кроме того, часто встречаются ошибки, связанные с каналами в Linux. При исполнении команды
Получение прав суперпользователя для выполнения нескольких команд
Иногда возникает необходимость выполнить подряд несколько команд с правами администратора. В этом случае можно временно стать суперпользователем одной из следующих команд:
Использование традиционного root аккаунта и команды su
Ubuntu 11.04 и младше
Для входа под root достаточно задать ему пароль:
Потом на экране входа нажмите Другой… и введите логин (root) и пароль, который вы задали.
Ubuntu 11.10 и старше
Начиная с версии 11.10 был установлен менеджер входа lightdm, и дело со входом под root обстоит немного сложнее.
1. Устанавливаем root пароль. Введите в терминал:
2. Включаем пункт «Введите логин». Введите в терминал:
В конце файла допишите:
3. Перезагружаем lightdm. Введите в терминал:
Для обратной блокировки учетной записи root вам потребуется откатить изменения в настройках lightdm, а также заблокировать учетную запись root командой в терминале:
Настройка sudo и прав доступа на выполнение различных команд
Подробнее о синтаксисе и возможностях настройки этого файла можно почитать выполнив
Разрешение пользователю выполнять команду без ввода пароля
Для того, что бы система не запрашивала пароль при определенных командах необходимо в sudoers после строки # Cmnd alias specification добавить строку, где через запятую перечислить желаемые команды с полным путём(путь команды можно узнать, выполнив which имя_команды:
И в конец файла дописать строку
Создание синонимов (alias`ов)
и добавьте в конец файла строки
Время действия введённого пароля
Возможно, вы хотите изменить промежуток времени, в течение которого sudo действует без ввода пароля. Этого легко добиться добавив в /etc/sudoers (visudo) примерно следующее:
Здесь sudo для пользователя foo действует без необходимости ввода пароля в течение 20 минут. Если вы хотите, чтобы sudo всегда требовал ввода пароля, сделайте timestamp_timeout равным 0.
sudo не спрашивает пароль
sudo без пароля — чудовищная дыра в безопасности, кому попало разрешено делать что угодно. Если вы разрешили это намеренно — срочно верните обратно как было.
Скорее всего, эта катастрофичная строка была добавлена при установке программы типа Connect Manager от МТС или Мегафона. В таком случае, её нужно поменять на строку, разрешающую с правами root запускать только этот Connect Manager, примерно так:
Есть и другие варианты решения проблемы, небольшое обсуждение здесь.
Настройка sudo в Linux
Команда sudo играет очень важное значение для управления правами доступа в операционной системе Linux. Благодаря этой небольшой команде вы можете давать полномочия на выполнение тех или иных действий от имени администратора другим пользователям, при этом не давая им сам пароль суперпользователя. Также вам не нужно сидеть всегда под учетной записью суперпользователя чтобы иногда выполнять административные действия.
Казалось бы, такая небольшая команда, с минимумом возможностей и максимально простым использованием, но на самом деле она может намного больше. В этой статье мы рассмотрим как выполняется настройка sudo в linux для контроля доступа к функциям системы и возможностей пользователя.
Как работает sudo?
Перед тем, как переходить к настройке доступа к утилите sudo давайте рассмотрим как она работает. В Linux есть два способа получить права администратора. Вы можете переключиться на пользователя root с помощью команды su или можете передать в параметре нужную команду утилите sudo, которая выполнит ее с правами администратора. Причем второй способ предпочтительнее, потому что вы не забудете что используете права root и не наделаете ничего лишнего.
Имя команды означает substitute user do или super user do. Утилита позволяет запускать программы от имени другого пользователя, но чаще всего от имени корневого. Утилита была разработана еще в 1980 году Бобом Когшелом и Клиффом Спенсером. За это время сменилось много разработчиков и было добавлено много функций.
Работает sudo благодаря флагу доступа SUID. Если этот флаг установлен для программы, то она выполняется не от имени того пользователя который ее запустил, а от имени владельца, учитывая что файл sudo принадлежит, то утилита выполняется от имени root. Затем она читает свои настройки, запрашивает пароль пользователя и решает можно ли ему разрешать выполнение команд от имени администратора. Если да, то выполняется переданная в параметре команда.
Теперь, когда вы знаете теорию, давайте рассмотрим как настроить sudo в Linux.
Настройка sudo в Linux
Все настройки sudo находятся в файле /etc/sudoers. Здесь можно настроить очень много параметров, начиная от кому будет позволено выполнять команды от имени суперпользователя и заканчивая ограничением набора доступных команд.
Чтобы открыть файл для редактирования наберите такую команду от имени суперпользователя:
Вы также можете указать текстовый редактор, в котором вы хотите редактировать файл настройки:
Дальше мы рассмотрим самые интересные настройки, которые вы можете задать в этом файле. Но сначала давайте рассмотрим основной синтаксис файла. Он состоит из двух типов строк, это псевдонимы, которые позволяют создавать списки пользователей и флагов, а также сами правила, которые задают как будет вести себя команда sudo. Синтаксис алиасов выглядит вот так:
тип имя_алиаса = элемент1, элемент2, элемент3
Описание разрешений для пользователей имеет немного другой синтаксис:
пользователь хост = (другой_пользователь:группа) команды
Основные параметры
Отключаем введение при первом использовании:
Суперпользователь не может выполнять sudo:
Теперь если вы попытаетесь выполнить sudo sudo ничего не сработает:
Изменять домашнюю директорию для целевого пользователя, по умолчанию остается папка текущего пользователя в качестве домашней директории:
Сохранять список групп текущего пользователя:
Запрашивать пароль суперпользователя вместо пароля пользователя:
Дальше рассмотрим переменные, которым можно задать значения чтобы установить нужные настройки:
Количество минут, которое пройдет перед тем, как sudo будет спрашивать пароль снова, по умолчанию 5. Если установить значение в 0, то пароль будет спрашиваться всегда, независимо от того как давно вы использовали утилиту:
Следующий параметр задает количество минут, пока sudo будет ожидать повторного ввода пароля при неправильном вводе:
Вы можете изменить сообщение, которое будет выводится при запросе пароля:
Defaults passprompt=»Ваш пароль:»
Можно указать другого пользователя, не root, от которого будут выполняться все команды, для этого используйте:
Вы можете записывать в лог все попытки подключения к sudo:
Затем пробуем проверить работу лога:
sudo cat /var/log/sudo
Это были все самые интересные параметры настройки работы sudo, которые могут вам понадобиться, дальше мы рассмотрим как задать права доступа sudo для пользователей.
Настройка пользователей sudo
Мы уже рассматривали выше синтаксис настройки действий для пользователей, здесь все сложнее чем с псевдонимами, но разобраться можно. Например, разрешим любому пользователю использовать sudo, от любого хоста и выполнять любые команды:
%wheel ALL = (ALL) ALL
Означает то же самое, что и предыдущее, только здесь мы разрешаем использовать sudo не всем пользователям, а только тем, которые состоят в группе wheel.
%wheel ALL = (root) ALL
Тут мы уже ограничили возможный выбор пользователей только пользователем root. Также можно указать группу пользователя, от имени которого он может выполнять команды:
%wheel ALL = (root:admins) ALL
Это значит что можно выполнить команду от имени root или другого пользователя из группы admins. Еще мы можем указать команды, которые может выполнять пользователь. Например:
%wheel ALL = (root) /bin/mount, /bin/umount
Пользователь может выполнять только команды mount и umount от имени суперпользователя. Теперь сделаем еще интереснее, пользователь может выполнять mount и umount без пароля, а все остальные команды с паролем:
%wheel ALL = (root) ALL
%wheel ALL = (root) NOPASSWD: /bin/mount, /bin/umount
Также можно ограничивать пользователям по хостах, например, разрешаем использование sudo только из host1:
%wheel host1 = (root) ALL
Осталось еще рассмотреть как применять псевдонимы. Псевдонимы могут быть таких типов:
Например, создадим четыре псевдонима и применим их в нашем правиле:
User_Alias Users = user1,user2,user3
Runas_Alias Admins = root,admin
Host_Alias Hosts = host1,host2
Cmd_Alias Cmds = /bin/mount,/bin/umount
Далее применяем все это в правиле:
Users Hosts = (Admins) Cmds
Это значит, что пользователи из списка Users смогут выполнять команды Cmds от имени пользователей Amdins на хостах Hosts.
Еще осталось сказать несколько слов о флагах. Флаг NOPASSWD говорит, что не нужно запрашивать пароль при выполнении этого правила. Например, разрешить всем пользователям выполнять команду mount с sudo без пароля:
ALL ALL = (root) NOPASSWD: /bin/mount
Также можно запретить выполнять именно эту команду вообще с помощью флага NOEXEC:
ALL ALL = (root) NOEXEC /bin/mount
Вы можете проверить правильно ли была проведена настройка файла /etc/sudoers и посмотреть все созданные правила с помощью команды:
Здесь отображены все установленные флаги и настройки, а также полномочия данного пользователя.
Выводы
В этой статье мы рассмотрели как выполняется настройка sudo в linux. Как видите, несмотря на то, что это очень простая утилита, она скрывает очень много полезных настроек, которые можно использовать в своей системе. Если у вас остались вопросы, спрашивайте в комментариях!
Команды su и sudo в Linux. В чем разница?
С командами su и sudo сталкивается каждый пользователь Linux. При этом, поскольку они имеют схожий синтаксис и выполняют практически одну и ту же задачу, многие новички не понимают, в каких случаях следует использовать ту или иную команду. На этом уроке мы узнаем, чем отличается su от sudo.
su против sudo
root или суперпользователь — это специальный аккаунт и группа пользователей в Unix-подобных системах с идентификатором, владелец которого имеет право на выполнение всех без исключения операций.
su и sudo — это два разных способа получить привилегии суперпользователя (root), обладающего максимальными правами и возможностью делать с системой всё, что угодно. В Windows такая учетная запись носит название «Администратор». Обычные (непривилегированные) пользователи в Linux сильно ограничены в таких правах: у них нет возможности производить запись в системные каталоги, управлять системными процессами и т.п. Поэтому для выполнения чего-то, что требует повышенных привилегий, и применяются команды su и sudo.
Основное различие между ними заключается в том, что su требует пароль целевой учетной записи (например, пользователя root) и переключает вас на нее, в то время как sudo требует пароль текущего пользователя и запускает от его имени только лишь одну (или несколько) команд, на выполнение которых требуются права пользователя root. Поэтому гораздо безопаснее использовать sudo, поскольку применение данной команды не включает в себя обмен конфиденциальной информацией.
Кроме того, рекомендуется отдавать предпочтение sudo при выполнении задач, требующих root-привилегий. В этом случае текущему пользователю предоставляются привилегии исключительно для указанной команды. С другой стороны, su полностью переключается на пользователя root, подвергая всю систему риску непреднамеренно изменить или удалить какой-нибудь жизненно-важный компонент.
Команда su
Примечание: В большинстве случаев, команда su (с дефисом и без) используется только для переключения на суперпользователя (root), хотя она может переключить вас и на другого ( [имя_пользователя] ) пользователя.
Как работает команда su?
Чтобы вызвать оболочку другого пользователя с окружением и рабочим каталогом текущего пользователя, используйте команду su (без дефиса). Например, если вы хотите работать от имени пользователя ravesli, выполните:
Затем введите пароль для учетной записи ravesli и нажмите Enter.
Оболочка должна измениться, и теперь у вас есть доступ к указанной учетной записи. Однако пользовательское окружение осталось старым:
Как работает команда su –?
Команда sudo
Команда sudo (от англ. «Substitute User and do« — «подменить пользователя и выполнить») используется в качестве префикса к командам Linux, позволяя вошедшему в систему пользователю выполнять команды, требующие привилегий root. В отличие от su, команда sudo требует ввода пароля текущего пользователя (выполняющего эту команду).
Например, все исполняемые и административные задачи требуют наличия максимальных разрешений (root). В таких случаях рекомендуется использовать sudo:
Прежде чем система выполнит команду, она запросит пароль текущего пользователя. Имейте в виду, что sudo может применяться только пользователями, принадлежащими к группе sudoers.
Добавление пользователя в группу sudoers
Чтобы пользователь мог выполнить команду, для которой требуется sudo, ему необходимо быть частью группы sudoers. Для добавления пользователя в группу sudoers, выполните следующую команду (от имени root или учетной записи, которая может применять sudo):
Например, чтобы добавить в группу sudoers учетную запись ravesli, вы должны ввести:
Чтобы просмотреть список учетных записей, принадлежащих группе sudoers, выполните:
sudo getent group sudo
Вывод отобразит учетную запись, добавленную на предыдущем шаге:
user ALL=(ALL:ALL) ALL
Нажмите Ctrl+X, а затем Y, чтобы сохранить файл. Вы также можете добавить пользователя в группу, указанную в файле /etc/sudoers. Пользователи групп, указанных в данном файле, автоматически получат привилегии sudo.
su и sudo в разных дистрибутивах Linux
su — это традиционный (более старый) способ переключения на учетную запись root (и получение повышенных прав) в Linux.
Сообщество разработчиков Linux не рекомендует на постоянной основе работать под учетной записью пользователя root, поскольку это может привести к нежелательным изменениям в системе, и предлагает вместо этого применять sudo. По этой причине, во всех производных от Ubuntu дистрибутивах Linux учетная запись root по умолчанию отключена. Вместо нее предлагается использовать sudo.
При установке, например, дистрибутива Linux Mint, вы автоматически создаете пользователя, помеченного как член группы sudoers. При этом настройки учетной записи root не предполагается. Чтобы включить пользователя root, вам необходимо активировать его вручную.
С другой стороны, другие дистрибутивы Linux, такие как Fedora, при установке создают обе учетные записи: обычного пользователя и суперпользователя (root).
Включение учетной записи root
Если вы используете Ubuntu-подобный дистрибутив (например, вышеупомянутый Linux Mint) и попытаетесь переключиться на пользователя root, то получите сообщение о сбое аутентификации:
Чтобы активировать пользователя root, выполните команду passwd :
Затем установите пароль и нажмите Enter. В результате система должна уведомить вас, что пароль пользователя root был успешно обновлен:
Заключение
Не забывайте использовать sudo всякий раз, когда это возможно. Благодаря этому вы снизите риск привести вашу систему в нерабочее состояние, а также повысите её защищенность от различных угроз безопасности.
Поделиться в социальных сетях:
Как изменить приглашение командной оболочки bash в Linux?