自宅サーバで外部からユーザーを追加する方法とは

このQ&Aのポイント
  • FedoraCore3+Apache2.0xx+vsftpdで自宅サーバを構築しています。外部からユーザーを追加してホームページを公開したいが、CGIやPHPを作成する技術がないため自動化する方法を知りたい。
  • ユーザーページを作成し、ユーザーディレクトリにフォルダを作りvsftpdのFTPの接続許可リストに名前を追加すると、ホームページの公開は可能ですが、自動化する上での課題があります。
  • telnetやSSHは利用が不安定であったり、クライアントを確保できない場合もあるため、より簡単かつ安全な方法を探しています。
回答を見る
  • ベストアンサー

自宅サーバで外部からユーザーを追加したい

FedoraCore3+Apache2.0xx+vsftpdで自宅サーバを 構築して動かしています。 ユーザーページを作れる環境にも設定をしてあり ユーザーを追加してユーザーディレクトリpublic_htmlの フォルダを作りvsftpdのFTPの接続許可リストに 名前を加えればホームページの公開はできるのですが、 外部からCGI又はPHPを使いユーザーの追加からホームページを 公開できるようにする上記の過程までを自動化することは 可能なのでしょうか? CGIやPHPを作成する技術は持っていません。 (そのページにはベーシック認証でアクセス制限をするつもりですが、) 無料ホームページスペースのような完全な登録の 自動化をしたいのです。 インターネットを通じてのtelnetの使用には不安が ありますし、SSHはどこでもクライアントを確保できる とは限らないので…。 どなたか回答をお願いします。

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

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

こんにちは。 結論からすると出来ます。 PHPではシステムコマンドを実行し結果を返す関数がありますので、きちんとしたプログラムを作れば出来るとは思います。現に「Webmin」というサーバ管理ソフトが(おそらく)「CGI」でユーザの追加をはじめ色々な設定を実現させています。 ですが・・・、実際にそれを実現されるにはPHPやCGIの知識もそうですが、Linuxのシステムについての知識も必要になってきます。 どういったサーバを構築しているか、もしくは目標としてるかはわかりませんが、「FedoraCore」は知識がある方でないならば、外部公開サーバとしては向いてないと思います。(「なぜか?」は知識ついてくるにしたがってわかると思います) そして、同じく知識がないのなら、ユーザを追加やFTPサーバは稼働させない方が賢明です。 私は自分でサーバを立てて3年ほど、プログラム言語を学んで5年ほどになりますが、外部公開は「Webサーバ」と「SMTPサーバ」のみです。(じゃないと怖くて・・・・(^ ^ ;ゞ) 私でも、ユーザ登録して誰かにいぢられるのは少々気が引けます。 ただ、私は「やるな」とはいいません。いや、言えません(かな(^ ^ ;ゞ)。 もしおっしゃられていることを実現させたければ、もう少し安定したOSをお進めします。たとえば・・・えっと・・・え~と・・・、まぁ、とにかく他のです。(^ ^ ;ゞ 私なんかは「VineLinux」を使っています。 こちらに色々デストリビューションが載っていますよ。 http://www.not-enough.org/abe/manual/links.html#linux-distribution-slackware 最近では、XOOPSのような、誰でも大企業ポータルサイトを構築できる。というような宣伝文句で盛んに勢力拡大しているソフト(PHPでできてます)もあります。ので、そちらを活用するのも手かもしれませんよ。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.3

>SSHはどこでもクライアントを確保できるとは限らないので…。 puttyにパッチをあててレジストリを使わなくするようにして、USBメモリに入れて持ち歩けば良いと思います。下記URL参照。USBを落とすと大変ですが。 >CGIやPHPを作成する技術は持っていません。 ということですが、ユーザー登録を自動化するシェルスクリプトくらいは書けるのでしたら、 >そのページにはベーシック認証でアクセス制限をするつもりですが、 ベーシック認証はパスワードが暗号化されずにネットワークを流れます。その程度のガードでいいんでしたら、ユーザー追加専用ユーザー(ログインシェルをユーザー登録シェルスクリプトにする)を作ってそのユーザーをtelnetで利用すると言うのも候補にしてよいと思います。

参考URL:
http://www007.upp.so-net.ne.jp/bemax/arita/putty.html#putty_ini
回答No.1

>外部からCGI又はPHPを使いユーザーの追加からホームページを公開できるようにする上記の過程までを自動化することは可能なのでしょうか? shellを使えば、自動化は可能でしょうが(雑誌の記事でみたことがあります。)・・・・ 危なっかしいと思います。 >インターネットを通じてのtelnetの使用には不安が ありますし、SSHはどこでもクライアントを確保できる とは限らないので…。 そうなんでしょうか? windows環境だってPuTTYってものがあるので私は自分の鯖はSSH2の秘密鍵のみでの認証をしてもらってます。 又自分が外からSSHを使わないといけないようなときがあるとすれば、KNPOOIXかBERRYを自分用に焼き直したCDを持って歩きますね。

関連するQ&A

  • Linuxサーバの全ユーザが公開しているWebページ内に特定の表示を出したいのですが可能でしょうか?

    2週間ほど調べてみたのですが有効な解決方法が分からず、質問させていただきます。よろしくお願いします。 Linuxサーバ内の全ユーザが公開しているWebページ(/home/[ユーザ名]/public_html/ 等のディレクトリ配下に作成するコンテンツ)内に特定の表示を出す方法を知りたいのですが設定方法が分かず悩んでいます。 イメージとしては、「無料レンタルサーバなどを利用してHPを公開したときに自動的にページ上部に表示されるバナー広告」がまさにそれ、です。 OSは FedoraCore4、WebサーバはApache2.0です。 Apacheで設定できるのか、または別の仕組みが必要なのか、ご教示いただければ幸いです。 用語等についてはある程度分かります。 よろしくお願いいたします。

  • apacheでパスワードなしログインが出来ない

    いつもお世話になります、 PHPからrsyncを実行するため、 apacheでパスワードなしログインが出来るようにしたいのですが 設定をしても、どうしてもパスワードを要求されてしまいます。 エラーメッセージが出ないので八方ふさがりになってしまいました LINUX上級者の方ご教授頂けると嬉しいです クライアント:CentOS5 サーバ:RedHutLinux5.6 【行いたいこと】 apacheでパスワードなしログインが出来るようにしたい 【クライアント側】 1.まずはapacheでsuできるようapacheユーザの最後の/sbin/nologinを/bin/bashに変更 2.apacheユーザの秘密鍵と公開鍵を置く場所を作る # mkdir /var/www/.ssh # chmod 700 /var/www/.ssh # chown apache.apache /var/www/.ssh 3.apacheユーザの秘密鍵と公開鍵を作る # su - apache $ ssh-keygen -t rsa 空でenter 4.以下の文字列をコピー $ cat ~apache/.ssh/id_rsa.pub 【サーバ側】 5./etc/passwdにapacheが見当たらなかったので追加 apache:x:48:48:Apache:/var/www:/bin/bash 6./etc/groupにapacheが見当たらなかったので追加 apache:x:48: 7.フォルダを作り公開鍵をペースト # mkdir /var/www/.ssh # chmod 700 /var/www/.ssh # chown apache.apache /var/www/.ssh # chown apache.apache /var/www/.ssh/authorized_keys # chmod 600 /var/www/.ssh/authorized_keys 8.権限付与 # chgrp -R apache /var/www/html 【クライアント側】 9.apacheにsuする 10.SSHで接続 ssh -i /var/www/.ssh/id_rsa XX.XX.XX.XX 11.パスワードを聞かれてしまう apache@XX.XX.XX.XX's password: 失敗

  • LINUXのユーザ追加スクリプト

    Linux上のApacheにおいて、Web上の公開フォームからPOSTされたユーザ名とパスワードで新規のLinuxユーザを作成するスクリプトをPHPかCGIで作ろうとしています。 しかし、なるべく”sudo”を使わない方法を考えているところで、止まっています。 サンプルコードを教えてください。

    • 締切済み
    • PHP
  • PHPを使って別のサーバのユーザの管理

    PHPを使用して別のサーバ上のユーザの追加・削除・パスワードの変更などを行いたいのですが、何かヒントでもよろしいのでご回答よろしくお願いいたします。 OS:FedoraCore3 PHP:4.3

    • 締切済み
    • PHP
  • さくらのサーバを借りようと思うのですが

    ライトかスタンダードで迷っています。 ライトではCGIとSSIしか使えないのに対し、スタンダードではPHP、MYSQL、TELNET、SSHなども使えるとなっていますが、 説明しているサイトにいっても説明が難しくてよくわかりませんでした。少しCGIの意味がわかったぐらいです。 これらは具体的にどんな事ができるのでしょうか? それとさくらのCGIは簡単に設置できるようなことが書いてありましたが、知識がまったくなくても設置できるでしょうか? 宜しくお願いします。

  • LinuxのWebサーバでユーザのホームページを公開したいです

    RedHatLinux9でWEBサーバを構築しました。 ユーザをいくつかつくりました。 そのいくつかのユーザのホームページを公開しようと思います。 調べた結果、 /home/ユーザディレクトリ に、public_html ディレクトリを作成し、 その中にindex.html を作成。 ユーザディレクトリのパーミッションを711にし、public_html は755になっているのでそのまま。index.htmlのパーミッションも644なのでそのまま。 これで、http://www.aaa.jp/~ユーザディレクトリ とやれば、index.html が表示されるとありました。しかし、index.htmlは表示できませんでした。 何か足りない設定はありますか? また、すべてのユーザにホームページをつくるわけではないのですが、 useradd -s /sbin/nologin でユーザを作成した場合、自動的に、http://www.aaa.jp/~ユーザディレクトリ とやるとLinuxデフォルトのTest Page が表示されてしまいます。 ホームページを公開しないユーザに対しては何も表示しないようにしたいのですが、どのような設定をしたら良いのでしょうか?

  • 外部(192.168.0.~)への公開方法

    RedHatの中にphpやperlアパッチが入っていたので、 それらを使用し、webサイトを作成し公開しようと思っていました。 test.htmlというファイルをディレクトリの中に入れて、(192.168.0.10)のマシンからファイルを見ようと思ったのですが・・・ RedHatのマシンのIPは(192.168.0.30)で http://192.168.0.30/hoge/php_test/test.html というふうにアドレスを指定して見ようと思っていました。 ちなみに SSHの『Poderosa』でLinuxのマシンに入ることは可能でしたのでネットワークは繫がっています。 外部への公開に向けて、他に何かが足りないと思うのですが、その何かが判りません。 知っている方いましたら、御教授お願い致します。 まとめ 1:Linuxマシンの中に入っている『.html』webページを見たい 2:データベースでテーブルを作成したい。pgsqlユーザーの作成方法とは・・ (MySql、PostgreSqlのアパッチはインストール済)

  • 外部からアクセスできない fedora core 6

    よろしくお願いします。。linux初心者です。 Fedora6 で自宅サーバーを構築、外部から見れないページがあって困っています。具体的には、ターミナル(SSH)=○(接続可)、/var/www/html/内のページ=○(xoopsの場合cssが外れたような状態になる)、インストール時からのユーザーのpublic_html内のページ=○、追加したユーザーのpublic_html内のページ=×(接続不可)、FTP=×。です、ローカルでは問題なく表示・接続ができ、自分なりには一通り設定したつもりなのですが・・同じような経験をされた方などおられましたらアドバイス等お願いいたします。

  • 広告の自動挿入方法

    Linuxで自宅サーバーをたてていますが、使用していない部分を一般の人に提供しようと考えています。 そこで、運営費の一部をまかなうため、ユーザーのページの最下部にテキスト広告を自動挿入したいのですが、どのようにすればいいのでしょうか? ご教授よろしくお願いいたします。 サーバー仕様 OS Fedora Core2 WWW Apache FTP Vsftpd CGI 不可 PHP 不可 です。

  • UserDirでCGI版PHPを動作させたい

    お世話になります。 最終的にはsuexecでの動作を目指しておりますが、その前段として UserDirでのCGI版PHPの動作をさせようとしています。 DocumentRoot配下でのCGI版PHPの動作には以下のような設定で成功しました。 [httpd.conf] Action php56-cgi /cgi-bin/php-5.6.27 <Directory "/usr/local/apache2/htdocs/php5test"> Options FollowSymLinks Includes ExecCGI AddHandler php56-cgi .php .html Require all granted </Directory> <IfModule alias_module> : ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" : </IfModule> # ls -l /usr/local/apache2/cgi-bin/php-5.6.27 lrwxrwxrwx 1 root root 22 11月 8 14:58 php-5.6.27 -> /usr/local/bin/php-cgi* /usr/local/apache2/htdocs/php5test/に置いた whoami.php の内容 <?php echo 'Current script owner: ' . get_current_user() . "<br><br>\n"; $current_user = trim(shell_exec('whoami')); echo 'Current user: ' . $current_user . "<br><br>\n"; $c_time = date("Y年n月j日(D) Ah:i"); print("Current time: $c_time<br>\n") ?> http://xx.xx.xx.xx/php5test/whoami.php Current script owner: root Current user: apache Current time: 2016年11月10日... と表示されます。 -------------------------------------------------------------------- ここから本題です。 $ mkdir /home/hoge/php56 $ cd /home/hoge/php56 $ ln -s /usr/local/bin/php-cgi php-5.6.27 $ ls -l lrwxrwxrwx 1 hoge hoge 22 11月 10 11:47 php-5.6.27 -> /usr/local/bin/php-cgi* $ ls -l /home drwxrwxr-x 30 hoge hoge 4096 11月 10 11:43 hoge/ $ ls -l /home/hoge drwxr-xr-x 2 hoge hoge 4096 11月 10 11:47 php56/ drwxr-xr-x 2 hoge hoge 4096 11月 10 10:41 public_html/ $ ls -l /home/hoge/public_html -rw-r--r-- 1 hoge hoge 331 11月 10 10:41 whoami.php [httpd.conf] <IfModule alias_module>内に ScriptAlias /hoge-php/ "/home/hoge/php56" を追加しました。 UserDir public_html Action hoge-php56 /hoge-php/php-5.6.27 <Directory "/home/hoge/public_html"> Options Indexes FollowSymLinks ExecCGI AddHandler hoge-php56 .php .html Require all granted </Directory> ブラウザで閲覧すると http://xx.xx.xx.xx/~hoge/whoami.php forbidden You don't have permision to access /hoge-php/php-5.6.27/~hoge/whoami.php となります。 ScriptAlias, Action がよく理解できていませんので ご指導よろしくお願いします。

    • 締切済み
    • PHP