• 締切済み

UNIXのpasswd

UNIXユーザのパスワードを変更するAPIを知りませんか?passwdコマンドはTTY入力が必要なのでNGです。 アプリケーションの中からパスワード変更したいのですが該当するAPIをご存じの方、教えてください。 OSはSolarisです。

みんなの回答

  • hohihohi
  • ベストアンサー率34% (23/66)
回答No.4

一番単純に考えるなら getpwent() で /etc/passwd を読んで、crypt() などを使って 作ったパスワード文字列で適当に編集したあと putpwent() する、という流れかと思います。man で調べるといろいろわかるとおもいます。

すると、全ての回答が全文表示されます。
回答No.3

xpasswd が最も便利です。 http://www.bento.ad.jp/~fumiya/ ・・・といいたいのですが Not found になってしまってます(;;) ・・・9月3日にはあったのに(-_-) 最新版ではないかとおもいますが、必要であれば、参考URLからDLしてください。 標準入力を用いて、パスワードの設定ができます。

参考URL:
http://www.daiba.cx/xpasswd/
mimura
質問者

補足

ありがとうございます。 早速DLしてみます。

すると、全ての回答が全文表示されます。
  • nekomilk
  • ベストアンサー率24% (20/83)
回答No.2

poppassdというのが、あります。 ソケットで、パスワードを変更できます。

mimura
質問者

補足

ありがとうございます。 やってみます。

すると、全ての回答が全文表示されます。
  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

弱気な回答で申し訳ありませんが、 passwdコマンドのソースコードを眺めてみるのはいかがですか? FreeBSDやLinuxのものでも、参考にはなると思います。 popen()関数でpasswdコマンドを実行してあげれば、入出力は FILE *を経由してデータの受け渡しができるはずです。 P.S. アプリケーションってSolaris上のモノですよね??? WindowsアプリからSolaris上のパスワードを変更するのではないですよね?

mimura
質問者

補足

早速の回答ありがとうございます。 アプリケーションはSolaris上です。 popen()ですか、やってみます。

すると、全ての回答が全文表示されます。