サーバーに新しいファイルをアップロードするときはいつでも、chown -R Apache:apache /dir
アクセスできるようにするため。
これを回避する簡単な方法はありますか?
ほとんどの場合、ファイルにアクセスできるようにするために実際に必要なのは、ファイルのグループがApache
に設定されていることです。以下を実行することにより、新しく作成されたファイルに対してデフォルトで簡単に設定できます。
find /path/to/root/directory/of/website -type d -print0 | xargs -0 chmod g+s
これにより、すべてのサブディレクトリにもsetgid
フラグが設定されます。このフラグを設定すると、そこに作成された新しいファイルはすべて、その親ディレクトリのグループを継承します。 (-print0
および-0
オプションは、ファイル名のスペースを正しく処理するように設計されています)
ファイルを実行する前に、ファイルの所有権が正しいことを確認してください。よくわからない場合は、同じ方法で修正できます。
find /path/to/root/directory/of/website -print0 | xargs -0 chown Apache:apache
VSFTPDでできることは次のとおりです。
vsftpd.conf
には次の2つのオプションを設定できます。
guest_enable=YES
guest_username=Apache
guest_enable
が有効になっている場合は、allファイルがユーザー/グループApache
としてアップロードされていることを確認します。
これは、FTP経由でアップロードされたファイルに対してのみ機能することに注意してください。 Linux自体のファイルをwwwディレクトリにコピーする場合、これは権限を調整しません。
そのため、ファイルシステムを介してそのディレクトリにもアクセスしている場合は、Levansが提案したchmod g+s
メソッドを使用するのが最適です。
(つまり)
find /var/www/site/public_html -print0 | xargs -0 chown Apache:apache
find /var/www/site/public_html -type d -print0 | xargs -0 chmod g+s
guest_enable
有効にすると、匿名以外のすべてのログインが「ゲスト」ログインとして分類されます。ゲストログインは、guest_username設定で指定されたユーザーに再マップされます。デフォルト:[〜#〜] no [〜#〜]
guest_username
ゲストログインの構成要素の説明については、ブール設定guest_enableを参照してください。この設定は、ゲストユーザーがマップされる実際のユーザー名です。デフォルト:ftp