Как сделать пользователя sudo debian

Обновлено: 07.07.2024

Про настройку Debian 10 на сайте уже имеется статья, ознакомится с ней можно перейдя по этой ссылке. В ней так же описано как поставить sudo, а в этой статье мы рассмотрим как это сделать в серверной среде. То есть, если вы хотите поднять свой сервер с Debian, и вам не хочется постоянно работать от root пользователя. Как известно, в Debian по умолчанию нет sudo, sudo позволяет работать обычному пользователю с правами root. Что весьма удобно, когда заботишься о безопасности своей системы, так как постоянная работа от root пользователя не принесет не чего хорошего. А уж ставить вам в Debian sudo или нет, решайте сами.

Устанавливаем sudo

Для начала нам необходимо поставить данную утилиту, для этого необходимо ввести команду:

Затем, обычно пользователя добавляют в группу sudo, но не в серверной версии Debian, в серверной версии необходимо отредактировать файл и вписать туда пользователя, который будет иметь права root. Для этого воспользуемся редактором nano, о котором вы можете прочесть в этой статье.

Редактируем sudoers

Файл sudoers находится в каталоге “/etc”, для его редактирования необходимо ввести команду:

Debian 10 Sudo 1

В открывшемся файле ищем строчку, где написано что то наподобие “root ALL=(ALL:ALL) ALL”, под ней необходимо вписать имя пользователя, которому вы хотите дать права root. Например, я хочу дать пользователя “cyber-x” права root, для этого под строкой “root ALL=(ALL:ALL) ALL” вписываем имя “cyber-x”, а затем пишем “ALL=(ALL:ALL) ALL”. Другими словами, заменяем имя “root” на имя вашего пользователя:

Debian 10 Sudo 2

После проделанной процедуры, можно поступить двумя способами, первый написать “exit”, тогда вы выйдите из под root пользователя и можно будет работать под вашим обычным пользователем с использованием sudo. А второй, перезагрузить систему, какой из приведенных способов использовать, решать вам.

Заключение

В заключении хотелось бы сказать, если же вы собираетесь устанавливать в Debian ssh, то для безопасности так же рекомендуется изменить порт с 22 на любой другой. Как это сделать, читайте в этой статье. А наиболее безопасным будет создание специального ключа ssh, и авторизация на сервере по данному ключу, как это реализовать, написано в этой статье.

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X

Debian и Ubuntu: Как добавить пользователя в группу sudo

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

Метод с использованием usermod

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

Стоит отметить, что использование параметров -a -G ОБЯЗАТЕЛЬНО.

Метод с использованием visudo

Так же можно разрешить пользователю пользоваться командой sudo с помощью команды visudo . Выполнив данную команду:

вы окажитесь в текстовом файле, где нужно найти следующую строчку:

Добавляем под ней нужного пользователя по аналогии с пользователем root:

После этого достаточно сохранить файл, нужному пользователю перезайти в систему и он сможет пользоваться командой sudo.

Этичный хакинг и тестирование на проникновение, информационная безопасность

Что означает sudo. Как запустить команду с sudo

Пожалуй самой часто используемой программой при системном администрировании (если вы работаете под обычным пользователем, а не под root), является sudo. Главное назначение sudo — это выполнить команду от имени другого пользователя, обычно от root. Смысл выполнения команды от root в том, что у него повышенные права доступа и, применяя sudo, обычный пользователь может выполнить те действия, на которые у него недостаточно прав.

Простейший и самый распространённый вариант запуска команд с sudo:

Если у КОМАНДЫ есть опции, аргументы, то для sudo не нужно делать какие-то дополнительные действия, например, помещать КОМАНДУ с опциями в кавычки или что-то ещё. Поставьте sudo и запускайте КОМАНДУ как обычно.

К примеру, я хочу выполнить:

Поскольку я работаю под обычным пользователем, то у меня нет прав доступа в директорию /root и я получаю ошибку:

Чтобы эта команда сработала, достаточно её записать после sudo:


Что использовать sudo или su?

У программы su похожее назначение: запустить команду с подстановкой ID другого пользователя и группы. То есть одинакового результата можно добиться используя как sudo, так и su.

Различия sudo и su в следующем:

1. При использовании su необходимо сообщать пароль root обычному пользователю (но это можно обойти — подробности в этом разделе чуть ниже). При использовании sudo пользователь вводит свой собственный пароль.

2. У обеих команд есть интерактивный режим, то есть можно как бы выполнить вход от имени другого пользователя. Также обе программы, sudo и su, позволяют выполнять команды без интерактивного режима. В su интерактивный режим запускается по умолчанию (если не указана команда для выполнения):

В sudo для входа в интерактивный шелл нужно использовать опцию -i:

Точнее говоря, всё немного сложнее, опция -i в sudo означает запустить оболочку входа в систему от имени указанного пользователя; также можно задать команду. Сравните:

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

3. Использование sudo требует настройки, а именно: 1) добавление пользователя в группу, имеющую право использовать эту программу; 2) установка разрешений (перечисление команд, которые может запускать пользователь с sudo и т. д. При некоторых настройках, если пользователь не упомянут в конфигурационных файлах sudo, то он не может ей пользоваться. Программа su не требует настройки для каждого пользователя.

4. Разное отношение с окружением выполнения: смена текущей рабочей директории при входе в интерактивный режим su, сохранение текущей рабочей директории при выполнении отдельных команд с sudo и su. Сравните переменную окружения $HOME в команде

со значением $HOME в команде:

На самом деле, для подавляющего числа случаев использования этих программ, каких-то кардинальных различий между sudo и su нет, то есть вы можете выбрать любую из них для выполнения команды с повышенными привилегиями или от другого пользователя. Чаще используется sudo только по той причине, что её синтаксис короче: достаточно добавить sudo перед выполняемой командой, что касается su, то запуск одной команды требует конструкции su -c 'КОМАНДА'.

Но если нужно выполнить несколько команд с повышенными привилегиями, то достаточно войти в интерактивную консоль su:

И затем перед командами уже ненужно ставить sudo.

Кстати, благодаря sudo можно войти в интерактивную сессию root'а не с паролем суперпользователя, а с паролем обычного пользователя, для этого нужно запустить такую команду:

Или использовать интерактивный режим самой sudo:

6. su не требует установки

Утилита su присутствует даже в минимальных установках Linux (в пакете util-linux, который является зависимостью для многих программ). Программа sudo может отсутствовать по умолчанию в некоторых дистрибутивах, например, в Debian.

Как выполнить команду от имени другого пользователя

Запуск sudo:

означает выполнить КОМАНДУ от имени пользователя по умолчанию. Таким пользователем обычно является root, но, на самом деле, может быть настроен другой пользователь по умолчанию.

Если нужно выполнить команду от имени иного, не root пользователя, то используйте опцию -u:

Как создать пользователя с sudo

Рассмотрим как создать пользователя, имеющего права запускать команды с sudo.

Чтобы создать пользователя с sudo в Debian, Linux Mint, Ubuntu, Kali Linux и их производных выполните команду вида:

  • -m означает создать домашнюю директорию пользователя, если она не существует
  • -G sudo означает добавить пользователя в группу sudo
  • -s /bin/bash указывает оболочку входа пользователя
  • -c "КОММЕНТАРИЙ" указывает комментарий, который будет хранится в файле аккаунта — можно пропустить эту опцию
  • ПОЛЬЗОВАТЕЛЬ — это имя пользователя


В Arch Linux, BlackArch и их производных для создания пользователя с sudo выполните команду вида:

Обратите внимание, что в Arch Linux группа, дающее право на выполнение команд sudo, называется wheel, а не, собственно, sudo. Также мы добавили пользователя сразу в две группы, а не в одну, имя второй группы video. Если вы создаёте пользователя на системе без графического окружения, например, на безголовом сервере, то добавлять в группу video не нужно.

В CentOS для создания пользователя с sudo выполните команду вида:

Теперь независимо от вашего дистрибутива, запустите одинаковую команду, чтобы установить пароль для нового пользователя:

Конфигурационный файл sudo

Программа sudo считывает конфигурацию из файла /etc/sudoers. Если в файле /etc/sudoers раскомментировать директиву

то дополнительно настройки будут считываться из всех файлов в директории /etc/sudoers.d.

которая откроет файл для редактирования. Кроме прочих функций, данная программа проверит синтаксис, и если в нём присутствует ошибка, то файл не будет сохранён.

При запуске visudo по умолчанию будет открыт файл /etc/sudoers. С помощью опции -f можно указать расположение файла в другом месте, например в /etc/sudoers.d.

Как разрешить пользователи выполнять только определённые команды с sudo

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

В файл /etc/sudoers нужно добавить строку вида:

В этой строке значения следующие:

  • Имя_пользователя: Это тот пользователь, кто инициировал выполнение команды с sudo
  • Имя_машины: Это имя хоста, где будет действительна команда sudo. Полезно если у вас много хостовых машин.
  • (Реальный_пользователь): Тот пользователь, от чьего имени будет выполнена команда.
  • Группа: группа, к которой принадлежит пользователь.
  • команда: команда или набор команд, разрешённых для запуска с sudo этому Пользователю.

Предположим, я хочу разрешить пользователю admin выполнять любые команды от имени любых пользователей, тогда мне нужно добавить строку:

Другой вариант, я хочу разрешить пользователю admin выполнять только команды /home/admin/backup.sh и /usr/bin/apt, и выполнять их он может только от root, тогда мне нужно добавить строку:

Обратите внимание, что если команд несколько, то они перечисляются через запятую без пробела.

По умолчанию включена настройка, которая разрешает всем членам группы sudo выполнять любые команды с sudo. Эта настройка заключена в строке:

В зависимости от дистрибутива, она же может быть записана так:

Как узнать, какие sudo полномочия имеются у пользователя

Мы только что узнали, что у определённого пользователя могут быть ограниченные полномочия на выполнение команд с sudo. Как узнать, какие именно команды может выполнить пользователь или как проверить, сработали ли наши настройки в файле /etc/sudoers?

Для вывода всех разрешённых команд или для проверки определённой команды, используется опция -l. Но если не указать опцию -U с именем интересующего пользователя, то будут выведены данные для пользователя по умолчанию (root).

Пример проверки прав sudo для пользователя admin:


Также можно узнать, является ли та или иная команда заблокированной или разрешённой для выполнения пользователем с sudo следующим образом:

Если команда запрещена, то ничего не будет выведено:

Если команда разрешена, то будет выведен полный путь до файла:

Как настроить использование sudo без пароля

Данная настройка только для тех пользователей, кто действительно понимает зачем он это делает и какие риски безопасности это влечёт.

Чтобы отключить запрос пароля ПОЛЬЗОВАТЕЛЮ при вводе одной или нескольких КОМАНД с sudo:

Чтобы отключить запрос пароля ПОЛЬЗОВАТЕЛЮ при вводе любой команды с sudo:

Чтобы отключить запрос пароля всем пользователям при вводе одной или нескольких КОМАНД с sudo:

Чтобы отключить запрос пароля всем пользователям при вводе любой команды с sudo:

К примеру, чтобы разрешить пользователю admin выполнять команды /home/admin/backup.sh и /usr/bin/apt с sudo без необходимости ввода пароля, нужно добавить строку:

Это конец первой части. Во второй части мы рассмотрим другие интересные настройки и опции команды sudo.

Связанные статьи:

факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!

Sudo — программа дающая возможность системным администраторам позволять пользователям выполнять команды как root (или другой пользователь). Основная философия — позволить людям выполнить свою задачу, используя как можно меньше привилегий. Также sudo эффективный способ для записи деятельности root: кто использует sudo, какую команду и когда.

Использование sudo лучше (безопаснее) открытия сессии root, по следующим причинам:

  • Нет необходимости в пароле root (sudo запрашивает пароль текущего пользователя)
  • По умолчанию команды выполняются от имени обычного пользователя (не привилегированного), что позволяет избежать ошибок. От имени root выполняются только команды с префиксом sudo.
  • Проверка/запись: когда выполняется sudo, записывается имя пользователя и исполняемая команда.

Добавление пользователя в группу sudo

Получаем права Root-пользователя:

И вводим пароль суперпользователя

Пользователи, которым разрешено работать с правами ROOT, перечисляются в файле /etc/sudoers

Чтобы внести туда нового пользователя открываем файл /etc/sudoers для редактирования:

1 способ. Находим в нем

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

Перезагружаем систему и теперь пользователь может работать с правами ROOT, используя свой пароль.

2 способ. Находим строку

Sudo — программа, дающая возможность системным администраторам позволять пользователям выполнять команды как root (или другой пользователь). Основная философия — позволить людям выполнить свою задачу, используя как можно меньше привилегий. Также sudo — эффективный способ для записи деятельности root: кто использует sudo,какую команду и когда.

Sudo не включён по умолчанию в Debian

Грубо говоря, sudo установлен и включён (если во время установки были выбраны компоненты рабочего стола). Но в Debian права не предоставляются по умолчанию (в отличие от некоторых других дистрибутивов).

(Примечание для DebianSqueeze: введён аналогичный инструмент PolicyKit, ориентированные на потребности настольных компьютеров и ноутбуков).

Почему sudo

    Нет необходимости в пароле root (sudo запрашивает пароль текущего пользователя).

По этим причинам, переключение на root с помощью "sudo -i" (или sudo su) считается устаревшим, поскольку отменяет вышеперечисленные особенности.

Обзор настроек

Небольшой пример для того чтобы разрешить определённым пользователям запускать некоторые программы (для получения дополнительной информации, см. документацию).

Проблемы и решения

Извините, пользователь jdoe не может выполнять .

Типичный сеанс выглядит следующим образом:

sudoers только для чтения

Файл /etc/sudoers только для чтения, даже для root!

Нужно использовать команду visudo для редактирования /etc/sudoers.

CVE-2005-4158