Включить sudo без пароля для конкретного пользователя

У меня в системе два пользователя: itsadok, мой основной пользователь, и elasticsearch, пользователь с другим ulimit для запуска ElasticSearch.

Я хотел бы иметь возможность запускать что-либо как дополнительный пользователь без запроса пароля каждый раз.

Я добавил следующую строку в /etc/sudoers:

itsadok ALL=(elasticsearch:elasticsearch) NOPASSWD: ALL

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

itsadok@dev001$ sudo -u elasticsearch ls

запрашивает у меня пароль. Перезагрузка машины не помогла.

Что я делаю не так?

ОБНОВЛЕНИЕ :

Оказывается, порядок строк в sudoers значим. Я поместил строку в «Спецификацию привилегий пользователя», которая звучала как правильное место, но строка для группы %admin, которая появилась позже, переопределяла настройку.

Помещение той же строки в конец файла sudoers решило проблему.

26
задан 13 January 2013 в 16:09

3 ответа

Исправленный ответ из комментариев: Если вы разместите директивы ниже #includedir, они игнорируются. Переместите строку рядом с определениями групп sudo или admin или поместите ее в отдельный файл в /etc/sudoers.d/.

0
ответ дан 13 January 2013 в 16:09

Выполните следующие действия:

  1. Отредактируйте файл sudoers (это может быть в /etc/sudoers.d/file_name)
sudo visudo -f /etc/sudoers
  1. Добавить строка в конце файла
usernameusedforlogin ALL=(ALL) NOPASSWD:ALL
  1. Сохранить файл
esc :wq!
0
ответ дан 13 January 2013 в 16:09

В качестве альтернативы вы можете использовать пакет python pudo: https://pypi.org/project/pudo/1.0.0/

Установка:

user$ sudo -H pip3 install pudo # you can install using pip2 also 

Ниже приведен фрагмент кода для использования в автоматизации python для запуска cmds с правами root::

user$ python3 # or python2
>>> import pudo
>>> (ret, out) = pudo.run(('ls', '/root')) # or pudo.run('ls /root')
>>> print(ret)
>>> 0
>>> print(out)
>>> b'Desktop\nDownloads\nPictures\nMusic\n'

Ниже приведен пример cmd для запуска cmds с правами root

user$ pudo ls /root
Desktop  Downloads  Pictures  Music
0
ответ дан 14 February 2020 в 14:49

Другие вопросы по тегам:

Похожие вопросы: