[ubuntu-jp:1617] Re: expect インストール実行エラー " spawn: not found"

SAITO Naohiko hu3n-situ @ asahi-net.or.jp
2009年 3月 7日 (土) 00:41:59 GMT


斉藤だったりします。

At Sat, 7 Mar 2009 01:15:30 +0900,
yasuno fumikazu wrote:
> 対話式ツール expectをインストールして以下のようなスクリプトを実行すると、
> " spawn: not found" のエラーになってしまいます。
> 
> "whereis expect" を打つと、/usr/bin/expect にあります。
> しかし、"rpm -q expect" を打つと、”パッケージ expect
> はインストールされていません”が表示されます。パッケージが正常にインストールされなかったのでしょうか?

調べるなら dpkg -l expect ですね。

> ------------------------------------
> #!/usr/bin/expect
> 
> set prompt "root at ml115:/home/user1#"
> 
> set timeout 5
> 
> spawn sudo su
> 
> expect "[sudo] password for user1:"
> send "user1pass\n"
> expect "${prompt}"
> send "mkdir /usr/local/test_dir\r"

# sudo su ってあまり意味がない気がする...。> sudo -s で(ry とかあるし。
# 自動実行とかなら cron とかも使うのはありだと思うし...。
# どんな形で使うのかによって色々変わるだろうし、他の手もあるかもしれな
# いし...。

ざっとみたところsudoを使った時に聞いてくるパスワード入力を回避するため
に...ってことみたいですが、特定のコマンドであれば逆に NOPASSWD を
/etc/sudoers にツッコんで使うようにしたほうが楽だと思います。

# 管理権限上設定できるかは別として。

ユーザ権限で cron なんかで使う場合は、アカウント一つ作ってそれに専用の
権限を持たせるほうがセキュリティ的にも吉ですね。

# パスワードスクリプトに持たせるのは、そのスクリプトを見られた時点で
# 「なりすまして結構です。」と言ってるようなものという気がしています。

-- 
斉藤直彦 <http://www.apt-get.jp/>




ubuntu-jp メーリングリストの案内