Cent OS 7でsudoersファイルを編集した後にパスワードプロンプトが表示されますか?

Cent OS 7でsudoersファイルを編集した後にパスワードプロンプトが表示されますか?

mukesh で始まる sudoers ファイル行部分が編集されました。

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
mukesh  ALL=(ALL)       SOFTWARE,DRIVERS
mukesh  ALL=(root)      NOPASSWD: /home/mukesh/Desktop/connect.sh

connect.shの権限

パスワード

/home/mukesh/Desktop

ls -lrt 接続.sh

-rwsr-xr-x. 1 root root 47 Apr  4 20:07 connect.sh

catconnect.sh

#!/bin/bash
sudo pppoe-start

プロンプトなしでrootとしてconnect.shを実行したいと思います。

編集する:

[mukesh@centos Desktop]$ ./connect.sh
pppoe-start: You must be root to run this script
[mukesh@centos Desktop]$ sudo ./connect.sh
[sudo] password for mukesh: 
[mukesh@centos Desktop]$ su -
Password: 
Last login: Mon Apr  4 10:27:09 IST 2016 on pts/0
[root@centos ~]# pwd
/root
[root@centos ~]# cd /home/mukesh
[root@centos mukesh]# cd Desktop
[root@centos Desktop]# ./connect.sh
. Connected!
[root@centos Desktop]# 



[mukesh@centos Desktop]$ cat connect.sh
#!/bin/bash
pppoe-start
[mukesh@centos Desktop]$ sudo /home/mukesh/Desktop/connect.sh
[sudo] password for mukesh: 
. Connected!

ここに私の完全なsudoersファイルがあります。

権限を削除するには、sudo chmod ox connect.shを試してください。

-rwxr-xr--.  1 root    root          97 Apr  5 09:30 connect.sh
[mukesh@centos Desktop]$ 
[mukesh@centos Desktop]$ sudo /home/mukesh/Desktop/connect.sh
[sudo] password for mukesh: 
. Connected!

編集2:

[mukesh@centos Desktop]$ sestatus
SELinux status:                 disabled

答え1

NOPASSWDスクリプトに設定しましたが、その中にパスワードが/home/mukesh/Desktop/connect.sh必要なものはありません。sudo

次のコマンドを使用してスクリプトを実行する必要がありますsudo

sudo /home/mukesh/Desktop/connect.sh

その後、sudoスクリプトから削除します。

#!/bin/bash
pppoe-start

単純なコマンドの場合は、これを追加するだけですsudoers(別のスクリプトは必要ありません)。

mukesh  ALL=(root)      NOPASSWD: /path/to/pppoe-start

また、スクリプト(解釈された実行ファイル)にSETUIDビットを設定しても効果はありません。


別の問題があります。つまり、他のユーザーのために実行ビットを設定しました。つまり、すべてのユーザーがファイルを実行できるため、sudo通常の権限よりも特殊な権限(たとえば)が先行されるため、パスワードの入力を求められますsudo

したがって、他の人の実行権限を削除できます。

sudo chmod o-x /home/mukesh/Desktop/connect.sh

sudoはパスワードを聞いてはいけません。

関連情報