web-dev-qa-db-ja.com

Xubuntu visudo sudoers編集が機能しない

パスワードの入力を求められることなく実行したいスクリプトを指定しようとしています。いくつかのグーグル検索とスタック検索、およびいくつかの異なる構文変更の後、私はまだそれを動作させることができません。特異なことの1つは、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
Pat Herrod

あなたのコメントに基づいて:

Rootとして実行しない限り、suを実行するユーザーのパスワードを入力する必要があることをsuが認識します。 Sudo ./test.shが機能するのは、rootとしてtest.shを実行しているためです。 (-uスイッチを指定しない場合、sudoはデフォルトでrootになります。

したがって、スクリプトで別のユーザーにsuを実行できるようにするには、rootとして実行する必要があります(これを行わないでください)。

スクリプト内で「su pat -c」の代わりに「sudo -u pat」を使用しないのはなぜですか?

1
VTC

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
desgua