[PHP-users 19427]Re: PHPからユーザー追加(FreeBSD)

shin ohira shin @ ohira.com
2003年 12月 19日 (金) 15:09:33 JST


こんにちは、
おおひらと申します。

pw コマンド使って簡単にできる方法があったのですね。

自分は ports から入れた expect を使ってパスワード入れてました ^_^;;

> cat passwd.exp
#!/usr/local/bin/expect
set user [lindex $argv 0]
set password [lindex $argv 1]
spawn passwd $user
expect "*password:"
send "$password\r"
expect "*password:"
send "$password\r"
expect eof

上のコマンドを php のソースから利用しています。

	$userid = XXXXXXXXXXXXXXX 省略 XXXXXXXXXXXXXXXXXXXX ;
        $userpw = XXXXXXXXXXXXXXX 省略 XXXXXXXXXXXXXXXXXXXX ;
        $cmd = sprintf ("./passwd.exp %s %s\n",$userid, $userpw) ;
        system($cmd);



Masaharu Nagata さんは書きました:
>こんにちは。
>長田と申します。
>
>
>On Fri, 19 Dec 2003 13:44:34 +0900
>齊藤 智宏 <xaitoh_php @ yahoo.co.jp> wrote:
>
>> はじめまして。齊藤と申します。
>> PHPを通してシステムにユーザーを追加する、また、
>> ユーザーの情報を変更するにはどうすればいいか悩んでおります。
>> マシン構成・設定などは以下の通りです。
>> 
>> ●サーバーマシン構成
>> PHP Version 4.3.4
>> Apache/2.0.48
>> FreeBSD 4.8-RELEASE
>> ProFTPD Version 1.2.9
>> Sudo version 1.6.7p5
>> 一般的なパソコン
>> 
>> 以下ソースです。※グループftpが在るのが前提
>> <?
>> system("/usr/local/bin/sudo mkdir /data/hoge");
>> 
>> system("/usr/local/bin/sudo pw useradd -n hoge -c 'hogehoge' -g ftp -d /data/hoge -s 
/usr/local/bin/bash");
>> 
>> system("/usr/local/bin/sudo passwd hoge");
>> system("hogedayo");
>> system("hogedayo");
>> system("/usr/local/bin/sudo chmod 755 /data/hoge");
>> system("/usr/local/bin/sudo chown -R hoge /data/hoge");
>> system("/usr/local/bin/sudo chgrp ftp /data/hoge");
>> ?>
>> 
>> 実行すると、ディレクトリ作成・操作、ユーザー作成は出来るのですが
>>  Changing local password for hoge. Password unchanged. 
>> といってパスワードの設定はできませんでした。
>> おそらく、一つのsystem文でpasswdコマンド部分を記述できれば出来るような
>> 気がするのですが、その記述方法は分かりませんでした。
>> またはpw useraddのコマンドのオプションでパスワードが設定
>> できればいいのですが、、、
>> 
>> 下記の記事のように、この件に関しては幾度も話題に上がって
>> いるようですが、
>> http://ns1.php.gr.jp/pipermail/php-users/2002-July/008422.html
>> FreeBSDでの件についての解決方法が無かった、または見つけ
>> られなかったので
>> MLに登録・質問させていただきました。
>
>
>http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=pw&dir=jpman-4.7.0%
2Fman&sect=0
>のページに、pw コマンドの -h オプションの記載があります。
>
>このオプションの使い方は、齊藤さんの例にならうと、以下のようになります。
>$ echo 'password' | /usr/local/bin/sudo pw useradd hoge -c 'hogehoge' -g ftp -d 
/data/hoge -s /usr/local/bin/bash -h 0
>
>これで解決できますでしょうか?
>
>-- 
>長田真治 <nagata @ good-day.co.jp>
>株式会社グッデイ
>http://www.good-day.co.jp/
>telto:06-4796-6670 faxto:06-4796-7373
>_______________________________________________
>PHP-users mailing list
>PHP-users @ php.gr.jp
>http://ns1.php.gr.jp/mailman/listinfo/php-users
>


PHP-users メーリングリストの案内