質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.00%

visudoでパスワード不要のコマンドを登録したがパスワード入力がパスされない

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 2,248

Y_N

score 11

前提・実現したいこと

現在、Bash on Windows on Ubuntuのvisudoで一部コマンドをパスワード入力せずにroot権限で実行する設定を行っております。
パスワード入力を不要にしたいコマンドはシェルプログラムで、root権限内のルートディレクトリ[root@<user>:~#]に配置してあります。

発生している問題・エラーメッセージ

visudo内に下記のコードを追加し下記のコマンドを実行したのですが、以前のようにパスワード認証が必要となってしまいます。

該当のソースコード

visudoの追加コード

<user名> ALL=(ALL) NOPASSWD: /root/


実行コマンド

sudo -i ./<シェルプログラム>

もし解決方法等あれば教えていただきたいです!

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

訂正:最初の回答は間違いでした。大変失礼しました。
マニュアルにはコマンドリストにディレクトリーも指定できることが書かれていました。
パスの最後を'/'で終わらせてディレクトリーを指定できるのですね。

自分の環境(Ubuntu 16.04LTS)で、以下のように設定すると/root/t.shがパスワードなしで実行できました。

sudoers: <user名> ALL=(ALL) NOPASSWD: /root/
/root, /root/t.shの権限は700の状態で、sudo /root/t.shで実行。

しかしながら、この状態でsudo -i /root/t.shとするとパスワードが聞かれます。-iとは併用できないということなのだと思います。(確かなことは言えませんが、-iの効果を得るためにsudoersの設定でそれが達成でいないか調べてみてはいかがでしょうか。)

以下最初の回答

sudoersマニュアルには行の末尾のエントリーは「コマンド」と記述されていたと思います。ゆえに「ディレクトリーのみを書いてコマンドファイル名を省略すること」はできず、特権実行を許すコマンド(スクリプト)を全て列挙する必要があると思います。

<user名> ALL=(ALL) NOPASSWD: /root/sh1.sh,/root/sh2.sh,/root/sh3.sh

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/09 13:09

    ご回答頂き有り難うございます!

    確かにディストリビューションは明記するべきでしたね。
    失礼致しました。
    下記のURLに記載がありました。

    http://d.hatena.ne.jp/LukeSilvia/20080716/p1

    キャンセル

  • 2017/06/09 16:24

    ご回答頂き有り難うございます!
    無事解決いたしました!

    sudo /root/t.sh
    で実行はできたんですが、シェル内の処理であるssh認証がうまくいかずPermission deniedというエラーがでておりました。(-iを使えばできましたが、パスワード入力が必要でした)
    それでよく調べたら鍵のディレクトリを表す際に~/.ssh/<鍵の名前>ってやると、root権限内ではなくユーザ内の鍵を探してしまうみたいですね。
    そのため~/.ssh/<鍵の名前>を/root/.ssh/<鍵の名前>ってするとうまくできました!

    何はともあれ解決できたのでここで閉めたいと思います。
    ご協力頂き有り難うございました!!

    キャンセル

  • 2017/06/09 19:46

    いえ、間違いをコメントしたりしてスミマセンでした。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.00%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる