コンテンツにスキップ

Top

sudo のパスワード入力を手入力から自動に変える方法

$ sudo ls

とかした場合、当たり前だが入力プロンプトが出てパスワードを要求される。

でも手で入力せずにそのまま自動で進めてほしいケースもあるはず。

そんなとき、セキュアではないが、シェルスクリプト内にパスワードを直書きしておいて、それを読み込んで実行する方法について述べる。

パスワードをパイプ経由で渡す

以下のように、パスワードをパイプ経由で渡せば良い。
(一旦変数に格納しているが、1行なら変数に入れなくても直接で良い。何行もsudoがある場合はうざいので変数にしただけ)

1
2
3
4
5
6
7
$ vi hoge.sh

#!/bin/bash
PASSWORD=password
echo $PASSWORD | sudo -S ls

$ chmod +x hoge.sh

大事な点は -S オプションをつけること。これがないとだめ。

これでパスワードを要求されずにsudo実行できる!

以上!