2

そのため、私のサーバーでホストされているサイトを持つクライアントのために、/home 内に標準のホーム フォルダーを持つユーザー アカウントを作成します。

collective私は本当に別の FTP サーバーを使用することに反対しているので、すべてのユーザーに対して SSH 刑務所をセットアップします。次に、ACL をインストールし、acl を my に追加しました/etc/fstab。すべて問題ありません。

  1. と に cd し/homeますchmod 700 ./*
    • この時点で、ユーザーは他のユーザーのホームディレクトリを見ることができません (yay) が、apache もそれらを見ることができません (ブー)
    • . 私は走っsetfacl u:www-data:rx ./*た。個々のディレクトリも試しました。
    • これで、apache はサイトを再び見ることができますが、すべてのユーザーも同様です。ACL により、ホーム フォルダのアクセス許可が に変更されました750

Apache がユーザーのホーム フォルダーでホストされているサイトを表示できるように ACL を設定するにはどうすればよいですか? 2. ユーザーは自分の家の外や他のユーザーのファイルを見ることができません。

4

3 に答える 3

2

質問をクロスポストしたので (質問するまで ServerFault について知りませんでした)、回答をクロスポストします。質問が両方のコミュニティに適していると個人的に思うからです。

hayalci の (ServerFault に関する) コメントは、

chmod と setfacl を一緒に使用するとうまく機能しません。

かなり役に立ちました。他のグループがデータにアクセスするのを防ぐために CHMOD を使用する代わりに、以下を使用しました。

cd /home
setfacl -m g::0 joeuser # Removes permissions for the owning group.
setfacl -m g:www-data:r joeuser # Adds read permissions for Apache
cd joeuser/joeuser.com/static/
setfacl -m g:www-data:rwx uploads # So apache can write to the uploads directory.
于 2009-08-16T04:14:25.343 に答える
1

共有ボックスで使用したトリックの1つは、次のとおりです。

  • 「他の」ユーザーにアクセスを許可しないように、ホームディレクトリの内容を再帰的に設定します

    chmod -R o-rwx /home/*

  • すべてのトップレベルユーザーのホームディレクトリのアクセス許可を「他の」ユーザーが実行できるように設定します

    chmod o+x /home/*

  • 各ユーザーのpublic_htmlディレクトリグループをwww-data(またはapacheグループ)に変更します

    chgrp www-data / home / * / public_html

  • / home / */public_htmlの下のすべてのディレクトリをsetgidに変更します

    / home / user / public_html -type d -exec chmod 2750{}\;を検索します。

www-data(またはapacheグループ)にユーザーを追加しないでください。それらはメンバーではありませんが、setgidトリックはファイルをapacheで読み取り可能にします。完全に保護されているわけではありませんが(ファイルの移動によってグループの所有者が常に変更されるとは限らず、移動前に他のユーザー権限が残っている場合もあります)、私のボックスでは機能します。これが少し役立つことを願っています!多分他の誰かがより良い解決策を持っているでしょう。

于 2009-08-16T01:40:39.033 に答える
1

すべてのユーザーが「ユーザー」グループに属していると仮定すると、私の典型的な方法は次のとおりです。

chmod 701 /home/*
chgrp users /home/*

必要に応じて、/home 自体で同じことを行い、ユーザーがホーム ディレクトリのリストを表示できないようにします。ただし、/etc/passwd またはからほぼ同じリストを取得できます。getent passwd

これで、users グループ内の全員が、すべてのホームディレクトリ (自分のディレクトリを除く) へのアクセスを拒否されます。ユーザーの非メンバー (Apache やその他のサービスなど) は、引き続きホームディレクトリに cd できますが、ls を実行することはできません。

chmod 755 /home/*/public_html <- 使用する www パスに置き換えます

これで、Apache およびその他のサービスは、自由に cd /home/foobar/public_html を実行して、ファイルやその他の Web サーバーが必要とするものを一覧表示できるようになります。

于 2010-11-15T09:41:19.250 に答える