2016-12-14 10 views
0

私は、ユーザがUbuntuのsudoグループに属しているかどうかを確認してから、sudoersファイルに行を追加することにかなり近いと思います。私はsudoersファイルに見える場合を除き、私は以下を参照してください。ユーザがsudoグループに属しているかどうかを確認するスクリプト

$IDUSER ALL=NOPASSWD: /usr/local/sbin/myscript 

代わりにそのユーザー名で、例えば。

#! /bin/sh 

set -e 

IDUSER=$(grep -Po '^sudo.+:\K.*$' /etc/group) 

if [ `id -u $IDUSER 2>/dev/null || echo -1` -ge 0 ]; then 
    echo '$IDUSER ALL=NOPASSWD: /usr/local/sbin/myscript' >> /etc/sudoers 

else 
    echo "Script failed..." 
fi 

理想的には、私はsudoersファイルにはsudoグループ内のすべてのユーザーを追加したいと思います。ここでは

bob ALL=NOPASSWD: /usr/local/sbin/myscript 

は私が持っているものです。

ありがとうございます。

+0

なぜ、あなたはそれをやりたいのですか?私はグループのすべてのメンバーをユーザ名の代わりに '%sudoers'のように1行で参照できると思っていますが、文書を徹底的にチェックしてください。 –

答えて

0

単一引用符'では、bash変数は展開されません。 echoの代わりに二重引用符"を使用してください。

あなただけのグループにsudoのユーザーは、このコマンドを実行してみましょうしようとしている場合は、しかし、ただの行を追加します。/etc/sudoersファイルへ

%sudo ALL=NOPASSWD: /usr/local/sbin/myscript 

を。記号%はグループを表します。

+0

Chrisさん、ありがとうございました。上記のスクリプトを使用して、sudoグループ内のすべてのユーザーをsudoersファイルに追加するための提案はありますか? –

+0

よかった、ありがとう。 –

+0

@sh_newbie私は答えにいくつかの情報を追加しました。あなたのスクリプトは書かれたとおりの仕事をします(ただし、2回実行した場合は重複した行があり、微妙なバグがあるかもしれません)。しかし、スクリプト内のsudoersファイルを変更しない方が一般的です何かをねじ込む。 – Chris

関連する問題