it-swarm-ja.com

Linuxパーミッション/ chown vs ftp

Linuxのパーミッション/所有権に(基本的な)問題があります。

FTPユーザー「ftp」があります。次に、サーバー上のすべてのファイルを別のユーザー「nginx」の下に置きます。

ウェブサイトを機能させるには、すべてのファイルをユーザーnginxに設定する必要があります。そうしないと、さまざまなエラーが返されます。

FTPでサーバー上のファイルを変更するには、ユーザー「ftp」にアクセス許可を設定する必要があります。そうしないと、ファイルを編集しようとしたときにアクセス許可が拒否されます。

これをどのように解決しますか?

現在、FTPを介していくつかのファイルを編集する場合は、常にchown -R ftp:ftpを実行する必要があります。

1
Tim

Ftpとnginxの両方に共通のグループが必要なようです。あなたの場合、おそらくこれにftpグループを使用できます。 Webサーバーにファイルへの書き込みアクセスが必要かどうかはわかりませんが、必要でない場合は、コンテンツディレクトリに移動して次のコマンドを実行します。

chown -Rh ftp:ftp .
find . -type d -exec chmod g+rxs {} \;
find . -type f -exec chmod g+r {} \;

Webサーバーからの書き込みアクセスが必要な場合は、代わりに次のようにします。

chown -Rh ftp:ftp .
find . -type d -exec chmod g+rwxs {} \;
find . -type f -exec chmod g+rw {} \;

これらのコマンドは、ftp:ftpが所有するすべてのものを作成し、これらのファイルをftpグループの誰もが読み取りおよび(2番目の場合)書き込み可能にします。また、すべてのディレクトリにsetgidビットを設定し、ftpグループが所有するすべての新しいファイルを作成します。これが完了したら、nginxユーザーをftpグループに追加します。

usermod -a -G ftp nginx

webサーバーを再起動して、有効にします。

また、これらのディレクトリに書き込まれるすべてのファイルをグループで強制的に書き込み可能にする必要がある場合もあります。これを行うには、ftpサーバーとWebサーバーのumaskを002に設定するか、aclを使用します。

setfacl -Rdm g::rwx .
4
virtex