• ベストアンサー

UNIXサーバでファイルを不可視にするには?

UNIXのサーバで、サーバ管理者の作ったCGI等を、 サイト管理者にFTP等で表示されたくないのですが、 ファイルをどのように設定すれば良いのでしょうか? (ファイルを弄られたり、コピーされたくないので) よろしくお願いします。

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

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

で、ディレクトリのパーミッションは701でOKです。 よく誤解されますがそのディレクトリ中のfileを読めるようにするためにはディレクトリに1(実行)を与えるだけです ディレクトリに読み取りを与えるとそのディレクトリ中の FILE一覧を表示できるようになります (もっともhttpd.confや.htaccessでも一覧表示は制限で きますが) で、もともとの質問に対する答えですが基本的に#5さんの方法でやるとして、 それに加えて以下の事もしなければいけません 1、httpd/conf/以下のfileは  オーナー:root  パーミッション:700 にする  httpdそのものはroot権限で動くのでapacheの実行に は問題ないですがユーザーはhttpd.confの内容を読めません  せっかくサーバー管理者用のfileを別の場所においてもユーザーがhttpd.confの内容を読めたのでは意  味ありませんから 2、実際にfileを置くディレクトリのパーミッションを701にして  fileをどこにおいたかユーザーから判らなくする 3.FTPDの設定で自分のホームディレクトリ以外にはアクセスできなくする 例えばproftpd.confの場合 DefaultRoot ~/public_html !**** #public_htmlより上の層にはいけなくする。 DefaultRoot ~ !**** #ホームディレクトリより上の層にはいけなくする。 あと、#6に書いた件、他の回答者がだれも突っ込んでないので 私の勘違いかと思って自分のサーバーで実験してみましたが やはり#6に書いたとおり、任意のFILEも生成できるし そのFILEのパーミッション変更も出来ます

その他の回答 (6)

回答No.6

回答2に対する補足で唖然!!! >CGI等プログラムが入っている親ディレクトリのパーミッションを707にして Oh! my GOD!!! そんな危険なこと、すぐやめてください 755よりひどいです 仮にwebサーバー管理のために 一般ユーザーと同じグループのアカウントを作った場合に グループからはアクセス出来ませんが other権限でCGIが動くにしろSuexecのユーザー権限で動くにしろ サーバ管理者がCGIを置くディレクトリに ユーザーの設置したCGIによって 任意のfileを生成・設置されてしまいます

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.5

微妙にちがいます。 例えばapache2系であれば、/var/www/htmlを 公開用フォルダとするとhttp://www.hoge.co.jp/ のルートのところがhtmlフォルダになります。 サイト管理者であれば、その部分を色々書き 替えられればすむはずです。 またcgi-binは*ttp://www.hoge.co.jp/cgi-bin/foo.cgi のように参照されます。 あくまでもapache上のエイリアスなのでサイト管理者 は/var/www/html/cgi-binを探しても見つかりません。 よって触ることができないわけです。 (実際には/var/www/cgi-binにあるわけですから)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

通常ftpは/etc/ftpchrootなどで、ユーザーのアクセス 範囲がホームディレクトリに定められます。 例えばサイト管理者であれば、そのサイトのルートで あるディレクトリにアクセスするようchrootでホームを /var/www/htmlや/usr/local/apache/htdocsに しているのではないでしょうか。 一方cgiを置くフォルダはhttpd.confのScriptAlias などで、/var/www/cgi-binや/usr/local/apache/cgi-bin などもともとftpでアクセスできないところ を指定しているのが普通だと思います。

hana_Z
質問者

補足

詳しい説明、ありがとうございます。 上記方法では、 ○○.com/html/というディレクトリ以降が、 通常のFTPで使用できる範囲ということでしょうか? ○○.com/cgi-bin/以降がサイト管理者のみの領域になるということでしょうか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

CGIの領域は普通はhtmlファルトとは別フォルダで 管理されているのでそこへ一般ユーザーがftp接続 できないようにするだけでとりあえずは問題ないかと。

hana_Z
質問者

補足

どのような対処をすれば良いんでしょか? 具体的にお教えください。 よろしくお願いします。

noname#45409
noname#45409
回答No.2

パーミッションを絞るだけだと、CGIは動作しなくなります。 SuExec環境にして、ユーザー単位でファイル管理をする(そのかわり、http://foo.bar/~hoge/のようなURLになります)か、CGIの領域をaliasで切り別の場所におき、その上でftpサーバーをchrootで動作させてアクセス出来ないようにすればOKです。 難易度的には後者の方が低いですが、いずれにせよ、ちょっと手間はかかります。

hana_Z
質問者

補足

回答、ありがとうございます。 結構、設定が面倒なようですね。 当方のサーバーですが、 CGI等プログラムが入っている親ディレクトリのパーミッションを707にしてもプログラムが動作したんですが、 これでは、問題解決にならないでしょうか? 一応、サイト管理者がFTPで、 親ディレクトリ以降のファイルを表示、コピー等できなくなっています。 どんなものでしょうか? 専門家としてご意見をお願いします。

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.1

がると申します。 「不可視」の定義にもよるのですが。 「ファイルを弄られたり、コピーされたくない」程度であれば、パーミッションを適切に設定すれば可能かと思います。

hana_Z
質問者

補足

早速の回答、ありがとうございます。 たとえば、 見られたくないファイルのあるディレクトリの パーミッションを707とかにすれば、 問題ないってことですか?

関連するQ&A