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

passwd,shadowからhtpasswdを一括作成可能?

CentOS 5.4 x86 httpd-2.2.3-31.el5.centos.2 mod_ssl なのですが Webページ公開に際して、SSL+Basic認証で サーバーの登録ユーザー(20~40人程度)に認証をかけたいのですが、 一人一人にキーボードでhtpasswdコマンドを打ってもらうのは 煩雑なので、/etc/passwdや/etc/shadowからhtpasswdに変換する方法はありますか? ここ↓ではサーバ・サーバ間ではpasswdでユーザID、パスワードを移行しているようですが、 http://sawano.members.icraft.jp/wp/2009/02/13/1234.html 既存のID、パスワード情報などから一括してhtpasswdを作成する方法はあるのでしょうか?

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

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

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

cat /etc/shadow|awk 'BEGIN{FS=":"}{print $1 ":" $2 }'|egrep -v "\!\!|:\*|^root:" > ./.htpasswd 元ネタは忘れてしまいました。どこかのサイトで見たんですが... 今、自分のサーバーでも使っているシェルなので間違いありません。

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

質問者からのお礼

ずばっと成功しました!!ありがとうございます!! 教えていただいたコマンドで出来たhtpasswdと、 htpasswdで作ったhtpasswdでは 同じ文字列でも、パスワードの部分が異なるんですね。 shadowとか echo PASSWORD -n | md5sumの結果と にらめっこしていたんですが… ググっても見つけられなかったので、需要ないのかな?と 不安になりました。 ありがとうございました。

関連するQ&A

  • AWStatsにBasic認証

    AWStatsにBasic認証 サーバはCentOS5.4を使用しております。 先日、外部に公開しているサーバにAWStatsを設置しました。 これで外からもアクセスログを見ることができるようになったのですが、AWStatsのURLが比較的容易に推測されやすいことから、Basic認証を設置してIDとパスワードを入力しないとアクセスログを見れないようにしたいと思い、現在作業をしております。 が、どうもBasic認証の設置がうまくいっていないみたいで、一通り作業を終えてブラウザから http://サーバのFQDN/awstats/awstats.pl でアクセスしたところ、IDやパスワードを聞かれず普通に見れてしまいます。 そこでお伺いしたいのですが、.htaccessはどこに設置したらよいのでしょうか? 現在行った作業としては、 /var/www/awstats/.htaccess に.htaccessを設置しており、中身は AuthType Basic AuthName "AWStats Login" AuthUserFile /etc/httpd/conf/passwd.dat require valid-user としました。また、 # htpasswd -c /etc/httpd/conf/passwd.dat ユーザ名 として、ユーザ名とパスワードが書かれたpasswd.datというファイルを作成しました。 お分かりになる方いらっしゃいましたら、ご教授のほどお願い致します。

  • .htaccess/.htpasswdの設定

    プロバイダ側でサポート対象外になっているのは 承知の上ですので、実際運用されている方がいらしたら 改善方法を教えていただければと思います。 ぷららにてプライベートホームページサービスを利用中ですが WWWサーバにてID/PASSによるアクセス制限をかけたい ディレクトリがあります。(※公式上、CGIサーバは.htaccessを利用可能だが WWWサーバはサポート外) .htaccess/.htpasswdをそれぞれ用意したのですが いざアクセスをすると、認証画面より先へ進みません (passwdの方へ設定したユーザ名とパスワードを入れてもはねられる) ■.htaccessファイル #パスワード認証 AuthUserFile /home/ユーザ名/test/.htpasswd AuthGroupFile /dev/null AuthName "himitsu area" AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files> ■.htpasswdファイル ユーザ名1:(暗号化されたパス1) ユーザ名2:(暗号化されたパス2) ■構成 [ユーザ名]   |___[test]          |__.htaccess          |__.htpasswd          |__index.html         

  • Linux HTTP htpasswd

    身内用にUploaderと掲示板を設置しました。 もちろん身内用ですので、パスワード認証をつけたのですが、 htpasswd -c /etc/httpd/conf/htpass private この方法でパスワードをかけてから http://www.xxxxx.com/~private/ 直下にindex.phpを置いていても http://www.xxxxx.com/~private/index.php と指定しないとそのディレクトリを表示してしまう phpのソースが表示されて動作しない(phpをインストールしてないときにおきる現象と同じ) が起きてしまいます。 私の設定の手順に問題があるのでしょうか? [root@localhost ~]# htpasswd -c /etc/httpd/conf/htpass private New password: Re-type new password: Adding password for user muscat [root@localhost ~]# vi /etc/httpd/conf/httpd.conf <Directory /home/private/public_html> AuthUserFile /etc/httpd/conf/htpass AuthType Basic AuthName ByPassword require user private </Directory> [root@localhost ~]# /etc/rc.d/init.d/httpd restart

  • htpasswdは前方一致ですか?

    未だにSunOS 5.6を使っているのでが・・・ そこで不思議な現象を発見したので教えて下さい。  ApacheのBasic認証のパスワードの生成に Linux xxx 2.4.18-23の htpasswd -b を使用して、rcp で SunOS 5.6 に転送しています。 通常の認証は問題なく動作していますが、パスワードに正しい値の後ろに任意の文字を追加したパスワードを入力しても認証されてします。  例  正しいPasswd: 1234  間違って認証されるPasswd: 12345  *4の後ろに5が追加されている  Passwdが前方一致されているように感じるのですが、これは正しい動作なのでしょうか?

  • /etc/passwd と /etc/shadowをそっくり新サーバーにコピーすればログインできますか?

    旧サーバー(Laser5-6.0)から新サーバー(RedHat7.3)に移行を考えています。新サーバーにも旧サーバーと同じアカウントとパスワードでログインできるようにしたいです。旧サーバーの/etc/passwdと/etc/shadowを新サーバーにコピーすれば可能でしょうか。もしだめなら、何かいい方法はありますか。

  • .htaccess と .htpasswd と etc/apache2 にある httpd.conf

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=2160824 で質問していた者です。少し進展しましたが、もう一度ここでお願いいたします。SUSE Linux の Apache2 で ユーザー認証=Basic認証を、イントラネットで試みています。外へ、ではなく、中だけのWebサーバです。htpasswdをインストールして、.htpasswdができました。そのあと、.htaccess を作ったのですが、いろいろな場所においても、認証ボックスが出てきません。httpd.conf の <Directory "/--/--/">---</Directory>をいじってみたのですが、これは、httpdが動き出しませんでした。よろしくお願いいたします。

  • webDAVの設定

    OSはCentOSです。参考図書どおりにやりましたが、認証が通りません。 1、/var/www/webdavを作りました。(所有者・グループはApacheです) 2、/var/lock/webdav(Apache:Apache)とロックファイルを作成するディレクトリも作りました。 3、/etc/httpd/conf.d/dav.confを作りました。(内容は省略しますが  図書どおりです)SSLはコメントアウトしています。(実験段階なので)何度も見直しました。 4、#htpasswd -c でユーザーとパスワード設定しました。 httpdをスタートさせます。もちろん、モジュールはコメントになっていません。 Windowsからアクセスします。認証画面が出ます。ユーザー名パスワードを入れます。しかし、パスワードが違うと出るんです。 原因不明です。他の、sambaとかの認証はうまくいきます。 httpd.confの中で設定ってありましたでしょうか? 以前Fedora4でやったときはうまくいったのですが、そのときの設定メモを取っていなかったので、何か忘れていますでしょうか?

  • htpasswd でのユーザ認証?

    Apache2.0 を Windows 2000 にセットアップしました。 下記のように、.htpasswd を使って、自分のディレクトリにパスワード認証をかけました。 しかし、何度やっても。  401 Authorization Required というエラーが出ます。 ログ(logs/error.log)を見ると「PASSWORD MISMATCH」と書かれています。 けど、何度確かめてもパスワードは間違っていません。どうすればよいでしょうか? 私がやったことは、以下のとおりです。 (1) http.conf を編集して、    AuthType Basic    AuthName "lab"    AuthUserFile "c:/Programs/apache/conf/.htpasswd"    Require valid-user を書く。 (2) htpasswd -c .htpasswd username として作った .htpasswd を /conf/ に置く。 このあと、Internet Explorer で該当アドレスを開くと、パスワードを聞くダイアログが出ます。 そこで username と パスワードを正しく入力するのですが、エラーが出ます。 どうすればよいでしょうか? なお、参考にしたサイトは以下のところです。 - http://acorn.zive.net/~oyaji/www/apache_win_ssl.htm - http://acorn.zive.net/~oyaji/www/apache_win_dav.htm

  • LinuxOSのユーザ・パスワードを元にPHPで認証を行うには?

    LinuxOSのユーザ・パスワードを元にPHPで認証を行うには? 曖昧なタイトルで申し訳ありません. 環境は以下の通りです. CentOS5.4 Apache 2.2 PHP 5 MySQL5 現在,LinuxOSに存在するユーザ毎にウェブベースのコントロールパネルを設けたいため,ユーザ認証を掛けたいと思っているのですが,どのような方法で認証を実装すれば,LinuxOSで使用されている/etc/passwdと/etc/shadowを元にした認証が可能なのか分からず,質問させていただきました. 流れとしては以下の通りです. ユーザ名・パスワードを入力 → ユーザが存在しなかったりパスワードが違えば認証拒否 ↓ Linuxにユーザが存在していて,且つシステムパスワードと一致すれば承認. この認証はPAM認証(?)で可能でしょうか? また,そうであれば,PHPからPAM認証を行うには,どのような環境整備が必要でしょうか? 参考サイトでもかまいませんので,ご教授いただけると幸いです. よろしくお願いします.

    • ベストアンサー
    • PHP
  • passwd/shadowファイルの「smtp」ユーザーについて

    メール/POPサーバーのpasswdファイルを別のマシンのもので上書きしてしまいました。 ユーザーはuseraddでとりあえず修復(所有権変更も)できたかと思ったのですが、その後バックアップしたファイルが見つかり比較したところ、passwdファイル、shadowファイルに「smtp」というユーザーが以前は登録されていました。 passwdファイル smtp:x:0:0:Mail Daemon User:/: shadowファイル smtp:NP:6445:::::: そこで以下のどの対応が好ましいのか教えていただけますか。 1) バックアップしてあったpasswd/shadowファイルで書き換え。UID変わってしまっているのでユーザーのメールファイルは所有権を変更。そのときの注意点は。 2) smtpユーザーを追加。 useradd -u 0 -o -d / -g 0 smtp vipw → (passwdファイル)→shadowファイル smtp:*LK*::::::: を smtp:NP:6445:::::: に変更。 (これで大丈夫なのか?) 3) このユーザーは不要なのでなにもしなくてよい。 使用環境は、 OSはSunOS 5.6 sendmailは 8.11.6 (以前にバージョンアップ) です。3)だとうれしいですが、いかがなものでしょうか。