sudoコマンドのパスワードを自動的に入力する方法] †
sudoコマンドで管理者権限が必要なコマンドを実行するとき、パスワードの入力が求められますよね。
パスワード入力を自動的にしてくれるサンプルスクリプトを以下に記します。
関連記事 †
パスワードをsudoコマンドに渡す方法 †
echoコマンドを使用することにより、簡単に実現することができます。
以下の実行例は、管理者権限が必要な fdisk コマンドで試してみます。
- echo $PASSWORD で実行してみる
sudoコマンドに-Sオプションをつけます。
オプションの意味は以下の通りです。
$ man sudo
<snip>
-S -S (stdin) オプションを指定すると、 sudo はパスワードをターミナルデバイスからではなく、
標準入力から読み込む。パスワードは末尾に改行を付けなければならない。
実際に実行してみます。
$ PASSWORD=password
$ echo $PASSWORD | sudo -S fdisk -l
Disk /dev/sda: 29.8 GiB, 32019111936 bytes, 62537328 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe73e7111
デバイス 起動 Start 最後から セクタ Size Id タイプ
/dev/sda1 * 2048 58361855 58359808 27.8G 83 Linux
/dev/sda2 58363902 62535679 4171778 2G 5 拡張領域
/dev/sda5 58363904 62535679 4171776 2G 82 Linux スワップ / Solaris
<省略>
まとめますと、以下のような構文となります。
echo パスワード | sudo -S コマンド
出力が不要の場合は
echo パスワード | sudo -S コマンド > /dev/null 2>&1
以上、sudoでパスワード入力を求められる操作を自動化する方法でした。