• 締切済み

他のユーザーディレクトリの閲覧

こんばんは。 友人にサーバーを少しの間”貸して”といわれたので貸したいのですが、FTP面でのセキュリティには問題ないのですが、よくよく考えるとPHP・Perlなどで「system("cat /var/www/html/secret.php");」を実行すると内容をみることができてしまいます。 他のユーザーからコマンドを実行できないようにするには、どうすればよろしいでしょうか? サーバ:CentOS 5.4

みんなの回答

回答No.1

CGIしか使えなくても問題ないなら、suExecを使うよう設定し、友人に見せたくないファイルのパーミッションを友人の権限で見えないようにするというのが常套手段ですね。ちなみに、もし、PHPを使いたい場合でもCGI用のPHPを使えば問題なくPHPは使えます。 本当に何も見せたくないなら、自分だったらUMLなどの仮想マシンで別環境を見せるようにします。squidのreverse proxy機能を使うと仮想マシンごとに別々のapacheを立ち上げて使うことも可能です。もちろん、これをするには仮想マシンごとに別々のドメイン名を発行する必要がありますが。このほか、たとえばFTPはホストOSの環境を見せて、Apacheを仮想マシンで見せるには、元の環境を見せるときはNFSをホストOSに対してかけるとよいです。 仮想マシンを見せ、その仮想マシンに最低限の設定しかしないでおけばいろいろと探索されても腹が痛むことは無いと思います。

sakurav2
質問者

補足

回答ありがとうございます。 最終的には仮想マシンを作る方法が、設定も個別にしやすくいいと思うのですが。 今の環境ですぐに対策できる案などの方が自分的には使い易いです。

関連するQ&A

  • CentOS:他のユーザにソースを見られたくない

    CentOS初心者です。 私が構築しroot権限を持っているWEBシステム用のCentOSサーバがあります。 /var/www/html 以下にPHPスクリプトを置いているのですが、このスクリプトのソースを他のユーザに見られたくない場合どのようにすれば良いでしょうか? 現在はとりあえず /var/www/html 以下全ての所有者を apache に変更し、パーミッションを700にしています。 他にいい方法がありましたらお詳しい方教えて頂けると幸いです。 宜しくお願い致します。

  • PHPから外部コマンドを使ってファイルやディレクトリを新規作成するには?

    LinuxのFedora10で、PHPで外部コマンドを使ってサーバ内にディレクトリを新規作成したいのですができません。 /var/www/uuu内に、index.phpを設置し、その中の一部に以下のようなスクリプトを書いています。 <?php system("pwd"); system("touch fff"); system("mkdir ddd"); ?> system("pwd")は/var/www/uuuという結果を出してくれます。しかし、system("touch fff")やsystem("mkdir ddd")に関しては全く結果を出してくれません。 (PHP自体のエラーではないようです。) どうやら、外部コマンド自体はうまく機能してくれているみたいなのですが、ディレクトリやファイルを新規作成することができないようなのです。 /var/www内のディレクトリuuuのパーミッションを777にして、オーナーを一般ユーザにしてやってみても同様にうまくいきません。 どのようにすれば、PHPから外部コマンドを使ってファイルやディレクトリを新規作成することができるでしょうか? よろしくお願いします。

  • /var/www を home directory にしたい

    CentOS, Apache, vsftpd を使っています。 ウェブページメンテナンス用のユーザーアカウントを作成し、 そのユーザーのホームディレクトリを /var/www にしたいのです。 ftp + chroot で /var/www の下以外のアクセスをさせないために。 そこまではできたのですが、そうすると何か他のことをやるたびに、 「システムアカウントの設定が変」みたいな文句を SELinux に言われます。 そのとき、/var/log/audit/audit.log にも何も出ないので、どうすれば いいのかサッパリわかりません。 setenforce 0 以外の方法が何かあるでしょうか?

  • ユーザ毎に利用するディレクトリを指定できるアップローダ。

    以下の条件を満たすファイルアップローダのCGIを探しています。 色々と教えていただけると幸いです。 ・アップロードするファイルの種類に制限なし。 ・ユーザを登録することができ、ユーザ毎に使えるディレクトリを管理できる。 ・使用する言語はperl、php等、一般的なレンタルサーバで実行できる形式。 よろしくお願いします。

    • 締切済み
    • CGI
  • FTPサーバーのユーザを増やしたい。

    Linuxサーバーを使っています。 FTPは既にこのLinuxOSに入っているようなのですが、そのFTPサーバーにユーザを追加して、そのユーザのホームディレクトリの定義などをしたいのですが、そのためのLinuxコメンドが分かりません。 教えていただけませんでしょうか? おもにこのサーバーをSSHによるリモート操作なので、Linuxコマンドで操作する方法を教えていただければありがたいですが、コマンドからできなければ、Linuxサーバーを開きGUIで操作いたします。 FTPが入っているかを確かめる方法も知らないので、このサーバーにFTPサーバーが入っているかも定かではないです。ただ、ShellでFTPというコマンドを打つと「FTP>」となったので、入っていると判断しています。 OS:Fedora release 10

  • PerlとCで相互に通信をさせたい

    クライアントサーバシステムによる制御システムを作っているのですが、HTMLの出力などユーザに接する主要な部分をPerlで書き、制御コマンドの発行などをCにやらせたいと考えています。そこで、例えばユーザの入力をPerlで受け、それをCに渡して実行させ、返って来た結果を再びPerlが受け取ってユーザに渡す。 こんなことってできますでしょうか。 system関数で、コマンドラインを呼び出すことはできるとは知っているのですが、引数を相互に渡せたら・・・と思うのですが・・・。

    • ベストアンサー
    • CGI
  • Apache設定でディレクトリごとにuserを帰ることはできますか。

    こんにちわ, 今apacheでwebサーバーを立て酔うとしているのですが, 普通 *****: User tarou Group jirou *****: などをhttpd.confにかいてユーザーを指定しますが,この指定をたとえば, /hogehoge/以下のファイルに対してはユーザー「tarou」で指定する。 /foofoo/以下のファイルに対してはユーザー「hanako」で指定する。 というのはできるのでしょうか。 というのはサーバースクリプトPHPでシェルをまわしたいときにそのユーザーでないと実行できないこと(rsh)などがあるのです。 知っている方,よろしくお願いします。

  • 特定のユーザーでしかコマンドを

    CentOSというユーザーしか、たとえばhostnameコマンドを実行させないとかいう処理はLinuxでできますでしょうか?できるとすればどのようにすれば可能でしょうか? ご存知の方よろしくお願いします。

  • カレントディレクトリの確認

    仕事の現場でLinuxサーバのログ取得を行っています。 流れとしてWindowsサーバにログインし、 Tera TermでLinuxサーバに入って ftpコマンドでWindowsサーバに接続し、 mputしています。 ※Linuxサーバ → Windowsサーバ ftp IPアドレスでWindowsサーバへ接続後、 カレントディレクトリを確認するためにpwdコマンドを実行したところ、 結果が表示されませんでした。 他に確認する手段として、どういったコマンドがありますでしょうか。

  • PHPセーフモードをディレクトリ毎に設定するには?

    OSはLinux Fedora10で、ウェブサーバは Apache/2.2.10 (Unix)、PHPは5.2.9 (cli)を使用しています。 以下のディレクトリをウェブサーバのディレクトリとして作成し、その中にPHPファイルをそれぞれ設置しています。 /var/www/aaa /var/www/bbb /var/www/ccc ここで、ディレクトリ「/var/www/aaa」内のPHPファイルにおいては、system()やその他のプログラム実行関数を許可したいのですが、その他の「/var/www/bbb」や「/var/www/ccc」内のPHPファイルにおいては許可したくありません。 上記のことを実現すべく、プログラム実行関数の使用を制限するために、「php.ini」のファイルを以下のように変更しました。(その後、HTTPDを再起動して、変更を反響させました。) safe_mode = Off  ↓ safe_mode = On safe_mode_exec_dir =  ↓ safe_mode_exec_dir = /var/www/aaa  すると、ディレクトリ「/var/www/bbb」や「/var/www/ccc」内のPHPファイルだけではなく、除外したはずの「/var/www/aaa」内のPHPファイルでも、system()やその他のプログラム実行関数の使用ができなくなりました。そして、以下のようなエラーメッセージを受け取ります。 Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in /var/www/aaa/example.php on line 10  PHPのセーフモードをディレクトリ毎にうまく設定するにはどうすればよいのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • PHP