同じグループのSFTPユーザーによって作成されたディレクトリとファイルに対する正しいデフォルト権限の設定

同じグループのSFTPユーザーによって作成されたディレクトリとファイルに対する正しいデフォルト権限の設定

私のフォルダには、/var/www/storage/app/uploads/public私のWebサイトCMSとリモートサーバーのsftpuploadスクリプトによって生成された多くのサブディレクトリがあります。

今私が直面した問題は、SFTPアップロードで作成されたディレクトリが原因で発生します。

不適切な権限

所有者はsftpuserであり、私のwww-dataユーザーには、このディレクトリにサブディレクトリを作成するための書き込み権限がありません。

これにより、私のwww-dataユーザーPHPスクリプトが公開されました。

/var/www/install-master/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php 336の「mkdir():権限が拒否されました」からの逆追跡:

親ディレクトリを最初にグループ書き込み可能にしたときから親ディレクトリのacl権限を確認すると、最上位ディレクトリに正しいacl権限があります。

適切なアクセス権

ただし、sftpによって生成された2番目のレイヤーにはこれらの機能はありません。

無効なアクセス制御リスト

私が見つけたこの問題しかし、SFTPがACLを無視する以外に、実際には役に立つ答えではありません。

/etc/ssh/sshd_configでsftpのumaskビットを設定してみました。

sshd_configでumaskを変更する

ただし、新しく作成されたディレクトリには影響しません。まだグループに書き込めません。

所有者とグループに sftp を使用して新しく作成されたフォルダに対するサブディレクトリの参照および作成権限を付与し、所有者とグループに読み取りおよび書き込み権限を付与しますが、そのサブディレクトリのファイルに対する実行権限を付与しないようにするにはすべきですか?

それとも別のアプローチを使用する必要がありますか?私が理解しているように、sftpはリモート側でファイル権限を変更するオプションを制限しており、aclはopenssh sftpでは明らかに無視されます。

それでは、Ubuntu 18.04で正しい実行権限を得るためにsftpuserをどのように使用しますか?

答え1

binfsで解決策を見つけました。これにより、アップロードしたフォルダを正しい権限で自分の保存先フォルダにコピーできます。

私はこのチュートリアルに従いました。https://www.talkerland.com/2018/08/20/howard/how-to-install-bindfs-on-ubuntu-18-04/

root@talkerland $apt 更新
root@talkerland $apt -y install binfs
root@talkerland $mkdir -p /home/gatekeeper/www/html
root@talkerland $chown -Rf ゲートウェイキーパー:gatekeeper /home/gatekeeper/www root@talkerland
$chmod -Rf 770 /home/gatekeeper/www
root@talkerland $nano /etc/fstab

その後、/etc/fstab行に

bindfs#/var/www/html /home/gatekeeper/www/html fuse force-user=gatekeeper,force-group=gatekeeper,create-for-user=www-data,create-for-group=www-data,create-with-perms=god=rx:ud=rwx:gof=r:uf=rw,chgrp-ignore,chown-ignore,chmod-ignore 0 0

godbinfsを起動して実行するために、fstabエントリのいくつかの変更を加えて希望の権限を得ました。また、グループ書き込みが可能なodandに変更しました。ここでは、意味、意味、意味、意味、意味です。udgudootherggroupuuserffileddirectory

bindfs#/var/www/html /sftp/sftpuser/app fuse force-user=sftpuser,force-group=sftpuser,create-for-user=www-data,create-for-group=www-data,create-with-perms=od=rx:gud=rwx:of=r:ugf=rw,chgrp-ignore,chown-ignore,chmod-ignore 0 0

これにより、適切な権限を使用してこれらのリモートファイルをアップロードする非常に詳細な方法があります。唯一の残念なことは、コンテンツが重複していることです。これは、適切な権限制御によって耐えることができる欠点です。

適切な権限

関連情報