Sambaで利用しているLDAPにまとめてユーザを追加したいことがあった。 ユーザ・パスワードはすでに分かっていているのでCSVに落としている。これを登録したいのだけど、パスワードを求められて結局ひとつづつパスワードを入力しなければならなくなる。 そこで、Rubyから外部コマンドを実行したとき、その外部コマンドの標準入力としてデータを渡すには以下のようにする。 # 以下の変数には適当な値が入っているとする # user : ユーザ名 # group : グループ # password : パスワード # smbldap-useraddコマンドでユーザを登録 u = open("|smbldap-useradd -a -g #{group} -H [UX] #{user}") u.close # 上のコマンドで登録したユーザのパスワードをsmbldap-passwdコマンドを利用して設定する