2012-02-07 14 views
2

のUNIX(Linuxではない)のパスワード変更私はすでにパスワード構造(getpwnamなど)を読むことができますが、特定のパスワードを変更する方法は知っています。 master.passwdをロックして直接変更するか、master.passwdからコピーを作成してこれを修正し、修正を加えた後にファイルを移動させる必要がありますか?Cシェルで

最後に、私はシステムを作成したくありません(usermod ...)それはシェルを呼び出すため、最後の解決策である必要があります! SolarisまたはAIXなどのUnix用のCで事前

+0

ヒントのおかげで!私の解決策は、pw_lock()、pw_init()、およびpw_mkdb()関数を使用するOpenBSDのlocal_passwd.cのソリューションに非常に近いところにあります。これらの関数を使用すると、古いpasswdまたはspwd.dbを使用している場合にもいくつかの変更を加えることができます。 – user1194264

答えて

2

おかげで、次のいずれかを実行します

  • 使用PAM API利用可能な場合。 Solarisの場合はsome articlesです。
  • 新しいパスワードcryptgetpwentputpwent
  • 変更既存のパスワードと新しいパスワードを追加し、endpwent

で終了あなたはputpwent & getpwentを使用してCでのUNIX用paswordを変更するにはhere a complete sample programが表示されます。 AIXのマニュアルseems to confirmも、そのOSで動作するはずです。

+0

パスワードが 'passwd'ファイルに保存されていて、それ以外のものではない場合、なぜパスワードを設定するのですか?すべてのことは、誰でもあなたが望むものとしてログインするのに3時間もかかるので... ;-) –