Меню

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

Information Security Squad

stay tune stay secure

  • Home
  • 2019
  • Февраль
  • 14
  • Как запускать определенные команды без пароля Sudo в Linux

Как запускать определенные команды без пароля Sudo в Linux

У меня был скрипт в моей системе Ubuntu, развернутый на AWS.

Основная цель этого скрипта – проверить, работает ли определенная служба с регулярным интервалом (если быть точным, каждую минуту) и автоматически запустить эту службу, если она остановлена по какой-либо причине.

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

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

Но я не хочу этого делать.

На самом деле я хочу запустить службу c sudo без пароля.

Если вы когда-либо сталкивались с подобной ситуацией, я знаю небольшой обходной путь.

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

Посмотрите на следующий пример.

Как вы можете видеть выше, мне нужно предоставить пароль sudo при создании каталога с именем itsecforu в корневой (/) папке.

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

Однако в моем скрипте я не хочу предоставлять пароль sudo.

Вот что я сделал для запуска команды sudo без пароля на моем компьютере с Linux.

Выполнять определенные команды без пароля Sudo в Linux

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

Я хочу, чтобы пользователь с именем sk выполнил команду mkdir без указания пароля sudo.

Давайте посмотрим, как это сделать.

Редактируем файл sudoers:

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

Здесь sk – это имя пользователя.

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

Вы можете добавить дополнительные команды (например, chmod) со значениями через запятую, как показано ниже.

Сохраните и закройте файл.

Выйдите из системы (или перезагрузите компьютер).

Теперь войдите в систему как обычный пользователь “sk” и попробуйте запустить эти команды с помощью sudo и посмотрите, что произойдет.

Несмотря на то, что я запускал команду «mkdir» с привилегиями sudo, пароль не запрашивался.

Отныне пользователю sk не нужно вводить пароль sudo при выполнении команды «mkdir».

При запуске всех других команд, кроме тех, которые добавлены в файлы sudoers, вам будет предложено ввести пароль sudo.

Давайте запустим еще одну команду с sudo.

А теперь? Эта команда предлагает мне ввести пароль sudo.

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

Добавьте команду «apt» в visudo, как показано ниже:

Вы заметили, что путь двоичного исполняемого файла apt отличается от mkdir?

Да, вы должны указать правильный путь к исполняемому файлу.

Чтобы найти путь к исполняемому файлу любой команды, например, «apt», используйте команду «whereis», как показано ниже.

Как видите, исполняемый файл для команды apt – /usr/bin/apt, поэтому я добавил его в файл sudoers.

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

Сохраните и закройте файл sudoers, как только вы закончите. Выйдите из системы и снова войдите в систему.

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

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

Вот еще один пример.

Читайте также:  Как хорошо настроить видеокамеру

Если вы хотите запустить определенную службу, например apache2, добавьте ее, как показано ниже

Теперь пользователь может запустить команду «sudo systemctl restart apache2» без пароля sudo.

Могу ли я выполнить повторную аутентификацию для конкретной команды в приведенном выше случае?

Просто удалите добавленную команду. Выйдите и войдите обратно.

Кроме того, вы можете добавить директиву PASSWD: перед командой. Посмотрите на следующий пример.

Добавьте / измените следующую строку, как показано ниже.

В этом случае пользователь sk может выполнять команды «mkdir» и «chmod» без ввода пароля sudo.

Однако он должен предоставить пароль sudo при выполнении команды «apt».

Примечание: это только для образовательных целей. Вы должны быть очень осторожны при применении этого метода. Этот метод может быть как продуктивным, так и разрушительным. Скажем, например, если вы разрешите пользователям выполнять команду «rm» без пароля sudo, они могут случайно или намеренно удалить важные материалы. Вы были предупреждены!

Источник

Как запускать команды sudo без пароля

Главное меню » Новости » Как запускать команды sudo без пароля

В большинстве дистрибутивов Linux, таких как Ubuntu, Debian, Fedora, механизм sudo позволяет пользователям с правами администратора запускать команды с привилегиями root.

Когда вы запускаете команду с sudo, она запрашивает пароль вашей учетной записи. Время ожидания по умолчанию для пароля составляет 15 минут (в Ubuntu Linux). Это означает, что вам придется снова вводить пароль, если через пятнадцать минут вы запустите команду с sudo.

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

В Linux вы можете изменить конфигурацию sudo для запуска некоторых или всех команд с помощью sudo, но без ввода пароля.

Если вы находитесь на сервере, вы должны быть особенно осторожны, особенно если у вас включен SSH. Может быть, вы должны отключить SSH доступ с паролем в первую очередь.

Давайте посмотрим, как использовать sudo без пароля.

Но сначала сделайте резервную копию файла sudoer в качестве меры предосторожности:

Выполнять все команды sudo без пароля [не рекомендуется]

Используйте следующую команду для редактирования файла /etc/sudoers:

Откроется текстовый редактор по умолчанию (Nano в Ubuntu) для редактирования этого файла. Все, что вам нужно сделать, это добавить строку в этом файле:

Конечно, вы должны заменить имя пользователя в приведенной выше команде на ваше имя пользователя.

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

Зачем использовать visudo для редактирования файла sudoer?

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

Запускайте только определенные команды sudo без пароля

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

Например, если вы хотите, чтобы apt update и apt update запускались без ввода пароля для sudo в Ubuntu, вот что вам нужно сделать.

Откройте файл для редактирования:

И затем добавьте строку как это:

Сохраните изменения, и вы готовы.

Надеюсь, вам понравится эта краткая статья по использованию sudo без пароля. Любые вопросы или предложения всегда приветствуются.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

sudo без пароля

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

Читайте также:  Как настроит отправку почты yandex

Убираем запрос пароля sudo

Создаем по указанному пути файл с именем пользователя

где vasya – имя пользователя (логин входа в систему)

Записываем в файл строчку

Назначаем права доступа на файл

Готово, теперь можете выйти из системы и снова войти, пароль sudo больше просить не будет.

Управление правами пользователя

Использование sudo позволяет грамотно разграничивать права доступа пользователя. Если нужен доступ к одному сервису, нет необходимости давать права root пользователю.

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

Создадим файл с именем пользователя

Добавим в него строку

После перечисленных действий пользователь petya имеет права sudo на выключение системы без ввода пароля.

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

Давайте разрешим пользователю выключение системы, а также установку обновлений в системе на основе Debian (Ubuntu например). Файл с правами пользователя petya будет иметь следующий вид:

Таким образом можно легко манипулировать правами для пользователей, добавлять и удалять их в файле с именем пользователя. Либо вообще удалить файл если требуется полный запрет прав.

Тем же методом можно дать права группе. Например дадим права группе users

%users – вначале идет знак % далее название группы, в данном случае users

Почитать про то как использовать sudo без терминала можно тут

Всем спасибо за внимание и до новых встреч.

Источник

Как запустить команду Sudo без пароля

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

Обычно, чтобы предоставить пользователю доступ к sudo, необходимо добавить пользователя в группу sudo, определенную в файле sudoers . В Debian, Ubuntu и их производных членам группы sudo предоставляются привилегии sudo, а в дистрибутивах на основе RedHat, таких как CentOS и Fedora, группа sudo называется wheel .

Каждому члену этой группы будет предложено ввести пароль перед запуском команды sudo . Это добавляет дополнительный уровень безопасности и является предпочтительным способом предоставления привилегий sudo пользователям.

Однако в некоторых ситуациях, например при запуске автоматических сценариев, вам может потребоваться настроить файл sudoers и разрешить определенным пользователям запускать команды sudo без запроса пароля.

Добавление пользователя в файл Sudoers

Файл sudoers содержит информацию, определяющую права пользователя и группы sudo.

Вы можете настроить доступ пользователя sudo, изменив файл sudoers или добавив файл конфигурации в каталог /etc/sudoers.d . Файлы, созданные внутри этого каталога, будут включены в файл sudoers.

Перед внесением каких-либо изменений рекомендуется создать резервную копию текущего файла:

Откройте файл /etc/sudoers с помощью команды visudo :

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

В большинстве систем команда visudo открывает файл /etc/sudoers с помощью текстового редактора vim. Если у вас нет опыта работы с vim, вы можете использовать другой текстовый редактор. Например, чтобы изменить редактор на GNU nano, вы должны запустить:

Прокрутите вниз до конца файла и добавьте следующую строку, которая позволит пользователю «linuxize» запускать любую команду с sudo без запроса пароля:

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

Читайте также:  Как настроить часы через телефон smart watch user manual

Например, чтобы разрешить использование только команд mkdir и mv :

Использование /etc/sudoers.d

Вместо редактирования файла sudoers вы можете создать новый файл с правилами авторизации в каталоге /etc/sudoers.d . Такой подход делает управление привилегиями sudo более удобным в обслуживании.

Откройте текстовый редактор и создайте файл:

Вы можете назвать файл по своему усмотрению, но обычно рекомендуется использовать имя пользователя в качестве имени файла.

Добавьте то же правило, что и в файл sudoers:

Наконец, сохраните файл и закройте редактор.

Выводы

Мы показали вам, как отредактировать /etc/sudoers чтобы вы могли запускать команды sudo без ввода пароля. Это полезно, когда у вас есть сценарии, в которых пользователю без полномочий root необходимо выполнять административные задачи.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии.

Источник



FAQ → sudo без пароля (Linux / Unix)

Если вы админ системы и вам регулярно приходится поднимать уровень привилегий в системе, то набирать пароль становится очень утомительно, для этого существует sudo nopasswd т.е. sudo без пароля, как это реализовать я и расскажу в этой маленькой заметке.

Существует 2 варианта реализации этой затеи — работающий и правильный, мы рассмотрим оба.
для примера буду использовать логин пользователя: user

Вариант номер раз — работающий

нам необходимо отредактировать файл

необходимо найти и добавить после записи:

После этого, можем заходить под пользователем user и набирать:

Система больше не будет спрашивать пароль

Вариант номер два — правильный

В принципе, все тоже самое, но нам необходимо создать файлик с содержимым

Также у этого файла должны быть определенные права доступа

После этого можем логиниться в систему под учетной записью user, набирать

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

Таким образом можно выдавать права определенному пользователю на выполнение определенных действий, без предоставления административных прав на всю систему.
Например: Нам необходимо предоставить права доступа на перезапуск сервиса memcached пользователю vasia, но мы не ходим его делать админом всей системы, но для выполнения этой операции требуются административные привилегии, мы их можем выдать только на выполнение одной операции.
Создаем файл:

Теперь пользователь vasia имеет права sudo на перезапуск сервиса memchached, система не будет требовать от него пароль.

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

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

Отбираем права у пользователя

Отзыв привилегий в системе производится путем удаления этого файла из директории:

После этого, пользователь vasia, потеряет административный доступ.

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

Добавим запись вида:

Где:
%powerusers — название группы

Источник