Редактирование Xubuntu visudo sudoers не работает

Я пытался указать скрипт, который я хотел бы запустить без запроса пароля. После нескольких поисков в Google и в стеке, а также ряда различных синтаксических изменений я все еще не могу заставить его работать. Особенностью является то, что при наборе sudo visudo открывается nano для редактирования файла. Я никогда не указывал nano в качестве редактора, но я, возможно, сначала отредактировал файл с помощью nano. Это сделает nano редактором по умолчанию? Если это так, может ли это вызвать проблемы. Спасибо за помощь.

Вот мой файл sudoers.

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL) ALL
pat     ALL=NOPASSWD: /home/pat/test.sh

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
1
задан 11 January 2014 в 23:23

2 ответа

Основываясь на ваших комментариях:

Поймите, что su, если он не запускается из-под root, требует от вас предоставить пароль пользователя su. Причина sudo ./test.sh в том, что вы запускаете test.sh от имени пользователя root! (По умолчанию sudo имеет значение root, если вы не указали ключ -u.

Поэтому, если вы хотите, чтобы скрипт мог выполнять su с другим пользователем, он должен быть запущен от имени пользователя root (не делайте этого) .

Почему бы просто не использовать в сценарии «sudo -u pat» вместо «su pat -c»?

0
ответ дан 11 January 2014 в 23:23

Редактор visudo по умолчанию - nano, нет проблем.

1) Вам нужно будет внести некоторые изменения в вашей строке

pat     ALL=NOPASSWD: /home/pat/test.sh

Оно должно содержать имя компьютера и пробел до и после «=»:

username computername = NOPASSWD: /path/to/script

Примерно так:

pat patcomputer = NOPASSWD: /home/pat/test.sh

2) Скрипт должен принадлежать root. Запустите это на терминале:

sudo chown root:root /home/pat/test.sh  

3) Установите нужные разрешения:

sudo chmod 705 /home/pat/test.sh  

4) Наслаждайтесь!

0
ответ дан 11 January 2014 в 23:23

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

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