• ベストアンサー
  • 困ってます

perl CGIでUNIXパスワード変更

お世話になっています。 perlCGIを使用して、Linuxのパスワード変更をすることは可能でしょうか? どう書いたら良いかご存じの方いらっしゃいましたら教えてくださいm(_ _)m Linuxのコマンドラインから操作する場合は、 $ passwd $ (current)UNIX password:現在のパスワード $ NEW password:新パスワード $ Retype new password:新パスワード (↑の現在のパスワード、新パスワードはWEBから入力です。) の操作なので、system関数を使用して出来ないものかと思ったのですが…。 どうしたものでしょう…。 よろしくお願い致します。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数432
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

WEBからシェルコマンドを実行した場合、実行権限はWEBサーバーの実行権限になります。通常WEBサーバーには重要な実行権限は与えられていませんから難しいと思います。 WEBサーバーに実行権限を与えるか(これはとても危険です)、WEBでの操作内容を一旦ファイルなどに書き出し、別にcrondなどで適切な権限を与えられたスクリプトでその処理を行うなどの必要がありますね。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お礼が大変遅くなってしまいましてすみません…m(_ _)m アドバイスありがとうございます!! 結局今回はセキュリティ面からも、WEBからの操作は見送りとなったのですが、 運用でカバーしつつ、アドバイスいただいた方法も今後の機会に検討してみようと思います。 ありがとうございました!

関連するQ&A

  • PerlでUNIXのコマンドとパスワード入力

    ブラウザでユーザー名とパスワードを入力して passwdコマンドでパスワードを変更するプログラムを作っています。 プログラム中で $result=system("passwd $user"); と実行すると、マシンは New UNIX password: の状態になって、パスワードの入力を待っていると思うのですが、 この状態でどうやってパスワード$passをマシンに送ったらいいのか わかりません。キーボードから読み取るのではなく、 プログラムですぐにパスワードを送りたいのです。 標準入力にフラッシュする?というのでしょうか。 system($pass); としてもうまくいきません。 OSはFedoraCoreで、スクリプトはルート権限で動いています。 どうかご教示ください。

  • Sambaのパスワード同期

    sambaとunixのパスワードを同期させようと思い本で調べました。そのなかで理解できない所があったので教えてください。 [global] passwd program=/usr/bin/passwd %u    ←(1) passwd chat=*new*password* %n/n *new*password* %n/u *successfully* ←(2) 右側の値の文法の意味がわかりません。教えてください。(1)では、%uの意味がわからなく(2)では全体的にわかりません。 よろしくお願いします。

  • samba について

    freebsdにてsamba2.2.12をインストールしました。 とりあえずは、起動してwindowsからもアクセスもできるようになりました。 http://www.atmarkit.co.jp/flinux/samba/sambatips01/sambatips1.html のサイト2でSambaユーザのパスワードをunixパスワードと同期させるということが 書いてあったのでやったのですが、どうもうまくいきませんでした。 というよりそもそも、一般ユーザでsmbpasswdが機能しないのです。 $>smbpasswd Old SMB password: New SMB password: Retype new SMB password: それぞれにパスワードを入力すると machine 127.0.0.1 rejected the password change: Error was : RAP86: The specified password is invalid. Failed to change password for smbuser と表示されてパスワードの変更ができません。 変更するにはsmb.confに unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = ここに書くパラメータをどう書けばよいか分かりません これらが必要なことが書いてあるのですが、passwd chatの書き方を教えていただけませんか?

  • Linuxユーザのパスワードを空に

    する(useradd直後の状態)にはどうしたらいいのでしょうか? 空のパスワードを入れるために単にリターンだけすると 以下のようになりできません。 #passwd passuser↓ Changing password for user passuser. 新しいUNIX パスワード:↓ よくないパスワード: あまりにも短かすぎます 新しいUNIX パスワードを再入力してください:↓ パスワードが与えられていません パスワードが与えられていません パスワードが与えられていません passwd: 認証トークン操作エラー # どうすればパスワードが空のユーザに出きるでしょうか? userdelした後useraddするしかないのでしょうか?

  • expectの構文について

    次のスクリプトを実行しました。 #!/bin/bash user="sarigennu" password="sarigennupassword" passwd="passwd" useradd $user; expect -c " spawn $passwd $user expect Enter\ send $password send \r expect Retype\ send $password send \r expect eof exit 0 " その結果として下のように標準出力されました。 どうしたら成功するでしょうか(一般ユーザのパスワードを変更できるようになるでしょうか?) spawn passwd sarigennu Changing password for user sarigennu. New password: BAD PASSWORD: it's WAY too short Retype new password: No password supplied No password supplied No password supplied passwd: Authentication token manipulation error

  • パスワード変更

    お世話になります。 OS:solaris9 パスワード管理上、定期的にユーザのパスワードの変更を実施しようと思うのですが、passwdコマンドで数十件のユーザを毎月変更するのは手間なので、shで修正できれば と考えています。 しかしshで修正するとnew-passwordとre-passwordのプロンプトが出力される為、そこで処理がとまります。 何とかsh内部でプロンプトへ自動入力できる様にならないのでしょうか?

  • パスワードを期限切れにしたい

    RedHat Enterprise Linux ES2.1を使用しています。 新しいユーザーを作成し、そのユーザーにすぐパスワードを変更してもらうため、 新しいユーザーを作成し、最初ののパスワードを設定した時点で、期限切れにしたいのです。 色々調べて、「passwd -e ユーザー名」のコマンドでできると書いてあるページを見つけましたが、 やってみたところ、unknown optionとなり、ダメでした。 UNIXではできるようですが、Linuxでできる方法はないのでしょうか。

  • Linuxでの新規ユーザー追加について

    マイクロソフトのVirtual PC 2007 で Vine linux 4.2 (server仕様)で、実際にサーバーを導入するときのために実験をしています。 某サイトを見ているとセキュリティ上、rootの他に新規にユーザーを作成したほうがよいということがわかりました。 そのサイトの通りに、ユーザーを追加することはできたのですが、新しく追加したユーザーにパスワードを設定ために (1)# passwd ○○○ ← パスワード設定 (2)Changing password for user ○○○. (3)New password: ← ○○○のパスワード応答 (4)Retype new password: ← ○○○のパスワード応答(確認) (3)のNew password: とはでてくるのですが、いざパスワードを入力しようとしても入力できません。 rootにはちゃんとパスワードを設定することが出来ました。 また、どのユーザーでもパスワードを入力することができません。 ちなみにrootでログインしています。 どうすれば、新しいユーザーにパスワードを作成することができますか?教えてください。よろしくお願いします。

  • MD5化したパスワードを再度パスワード認証する

    説明下手かもしれませんが、MD5化したパスワードを再度パスワード認証する方法で躓いてしまいました。 test.php $passwd = 'admin'; $passwd = md5($passwd); if(!isset($password)){$password = md5($_post('password')) ;} if($password == $passwd)){ //ファイルへ書き込み、ファイル一覧表示する処理(コード省略) //★★ 処理した後に、この下でコードでパスワード認証されたPOST送信ボタンを出力 ★★ echo "<td> <form action=$PHP_SELF method=post> <input type=hidden name=password value=$passwd> <input type=submit value=送信> </form>"; } 問題は (1)$passwdはMD5で暗号化されている (2)POST送信された$passwdはMD5で暗号化されたものが、md5($_post('password')で更にMD5化されて認証エラーになる。 なのでフォームボタン(POST送信)を使用し、自身のスクリプトに認証されるような処理を行いたいのですが、 いい方法をアドバイス下さい。 echo "<td> <form action=$PHP_SELF method=post> <input type=hidden name=password value=$passwd> <input type=submit value=送信> </form>";

    • ベストアンサー
    • PHP
  • パスワードファイルの管理

    PHPに限ったことではないですが、 サイトのユーザー認証で、入力されたID,passwordとサーバー上のパスワードファイルを照合させるとします。 そのパスワードファイルをpasswd.logとかにするとweb上でダウンロード出来てしまいますが、出来ないようにするにはどうしたらいいでしょうか? よろしくお願いします。

    • 締切済み
    • PHP