web-dev-qa-db-ja.com

Bashスクリプトのパスワードなしのsu?

HadoopインストールをOracle Enterprise LinuxからUbuntuに移行する際に、ジレンマに陥りました。前の開発者は次のコマンドをOEL内のrc.localに入れました。

su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"

Ubuntuで指定されたreporterユーザーとして自動的に開始(および停止)するには、上記のWebサーバーが必要です。 (自動化はmuchこのスクリプトをreporterユーザー、ただし「Nice to have」機能です。

このプロセスは最後に開始する必要があります。他のいくつかのHadoop関連のスクリプトをこのスクリプトの前に自動的に開始するように構成する必要があるためです(WebサーバーはHadoopファイルシステムにあり、OSに入るまでマウントされません) )。 suコマンドを発行するたびに、パスワードの入力を求められます。これは、どのユーザーが現在「アクティブ」であるかに関係なく発生し、ルートユーザーが実際に使用されるため、OELでは問題になりませんでした。/etc/sudoersファイルに対する現在の試みを次に示しますが、まだ機能していません(下部で行った変更が正しいかどうかはわかりません)。

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults        env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification

# Allow members of group Sudo to execute any command after they have
# provided their password
# (Note that later entries override this, so you might need to move
# it further down)
%Sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d

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

# User privilege specification
root    ALL=(ALL) ALL
user3 ALL=(ALL)NOPASSWD:/bin/su
user2 ALL=(ALL)NOPASSWD:/bin/su
user1 ALL=(ALL)NOPASSWD:/bin/su
reporter ALL=(ALL)NOPASSWD:/bin/su

これは、UbuntuForums.orgで投稿したスレッドの複製です( http://ubuntuforums.org/showthread.php?p=12040341#post12040341 )が、答えを切望しています= P。私のLinuxの知識はまだ弱いことに注意してください(このプロジェクトが私のラップにドロップされるまで、私はLinuxがほとんどないことを知っていました)。これは現在大きな障害であるため、どのヘルプも大いに高く評価されています!

ありがとう、スナイプ

1
Sniperm4n

パスワードを求められたくない場合は、suをrootとして実行するために使用する必要があるため、以下を使用する必要があります。

Sudo su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"

しかし、あなたがやろうとしていることは本当に悪い考えだと思う、あなたはすべてのユーザーがrootを含む他の誰かとしてログインすることを許可している。

0
konairius