Страница 1 из 1

sudo visudo отредактировать права доступа sudo

Добавлено: 25 мар 2025, 12:26
ya
sudo -E EDITOR=mcedit visudo

Код: Выделить всё

username ALL=(ALL) NOPASSWD: /path/to/some_command
Вы также можете установить переменные окружения на постоянной основе, добавив их в файл конфигурации вашей оболочки (например, ~/.bashrc или ~/.bash_profile для bash). Например, добавьте следующую строку в файл:

Код: Выделить всё

export EDITOR=mcedit

Re: sudo visudo отредактировать права доступа sudo

Добавлено: 25 мар 2025, 12:32
ya
Чтобы найти полный путь до программы или исполняемого файла
which <имя_программы>

Re: sudo visudo отредактировать права доступа sudo

Добавлено: 03 янв 2026, 21:38
ya
добавить в начало конфига visudo чтобы исправить редактор

/etc/sudo.conf

Код: Выделить всё

Defaults editor=/usr/bin/nano
...

Re: sudo visudo отредактировать права доступа sudo

Добавлено: 03 янв 2026, 21:45
ya
sudo по-умолчанию

Код: Выделить всё

username ALL=(ALL:ALL) ALL
sudo Без запроса пароля

Код: Выделить всё

username ALL=(ALL) NOPASSWD: ALL
Для группы используйте 

Код: Выделить всё

%groupname ALL=(ALL) NOPASSWD: ALL
Альтернативный способ – отдельный файл в /etc/sudoers.d
Вставьте ту же строку username ALL=(ALL) NOPASSWD: ALL и сохраните

Код: Выделить всё

sudo nano /etc/sudoers.d/username
sudo chmod 644 /etc/sudoers.d/username

Код: Выделить всё

sudo whoami

Re: sudo visudo отредактировать права доступа sudo

Добавлено: 03 янв 2026, 21:50
ya
Если нужно убрать запрос пароля только для определённых программ

Код: Выделить всё

vasya ALL=(ALL) NOPASSWD: /usr/bin/apt, /sbin/reboot, /usr/local/bin/myprog
местоположение программы можно узнать командой

Код: Выделить всё

which программа

Re: sudo visudo отредактировать права доступа sudo

Добавлено: 01 фев 2026, 01:06
ya
Порядок строк имеет значение: sudo читает файл сверху вниз. Если в конце файла есть общая настройка для всех пользователей, требующая пароль, она может перезаписать ваше правило. Поэтому всегда добавляйте свои правки в самый конец файла.

Использование поддиректории: Вместо прямой правки /etc/sudoers, лучше создать отдельный файл в директории /etc/sudoers.d/. Это чище и безопаснее при обновлениях системы:

Создайте файл: sudo visudo -f /etc/sudoers.d/ansible

Пропишите туда: ansible-worker ALL=(ALL) NOPASSWD: ALL

Настройка в Ansible: Не забудьте, что в самом Ansible (в ansible.cfg или в playbook) при использовании become: yes метод по умолчанию — sudo. Если вы настроили NOPASSWD, вам больше не нужно передавать аргумент --ask-become-pass (или -K).

Код: Выделить всё

ansible all -m shell -a "whoami" -v
повышение привилегий ansible

Код: Выделить всё

ansible all -m shell -a "whoami" -v -b -K
-b повышает привилегии
-K запрашивает пароль на повышение привилегий

Re: sudo visudo отредактировать права доступа sudo

Добавлено: 01 фев 2026, 01:16
ya
Если вы пишете Playbook и хотите увидеть имя пользователя в процессе выполнения, используйте встроенные факты:

Код: Выделить всё

- name: Проверка имен пользователей
  hosts: all
  tasks:
    - name: Вывести имя пользователя SSH
      debug:
        msg: "Подключаюсь как {{ ansible_user | default(ansible_env.USER) }}"

    - name: Вывести имя пользователя после become
      debug:
        var: ansible_real_user_id
Переменная Что содержит
ansible_user Имя пользователя, указанное в инвентаре для подключения.
ansible_env.USER Имя пользователя в окружении удаленной системы.
remote_user Системная переменная текущей сессии (в рамках задачи).

Re: sudo visudo отредактировать права доступа sudo

Добавлено: 01 фев 2026, 01:20
ya
Ansible ищет имя пользователя в следующем порядке приоритета (от высшего к низшему):

Флаги в командной строке: Параметр -u <user> (например, ansible-playbook -u admin).

Переменные в Inventory: В вашем файле hosts или hosts.yml может быть строка ansible_user=имя.

Конфигурация в ansible.cfg: Секция remote_user.

Настройки SSH: Если в Ansible ничего не указано, он посмотрит в ваш ~/.ssh/config.

Текущий пользователь системы: Если нигде ничего не найдено, Ansible попытается подключиться под тем же именем, под которым вы вошли в систему на своей локальной машине.