ホーム Web サイトからサブディレクトリに chroot する (SFTP)

ホーム Web サイトからサブディレクトリに chroot する (SFTP)

Debian apache2サーバーで、Webサイトツリーのサブディレクトリ(Webサイトのホームディレクトリ:/ホーム/ウェブサイト/public_html/特定のユーザーのみにアクセスを希望:/home/website/public_html/boutique/modules/sftpwkmodules

メインウェブサイトのユーザーはすべてのツリー(userweb)にアクセスできます。
しかし、ユーザーにアクセスが必要ですsfkモジュールツリー内のサブディレクトリに
ユーザーを作成しましたが、機能しません。sfkモジュール、およびグループsftpwkモジュール
これらの行を次のように設定しましたsshd_configファイル:

Match group sftpwkmodules
    ChrootDirectory /home/website/public_html/boutique/modules/wkmanagesuppliers
     ForceCommand internal-sftp
     AllowTCPForwarding no
     X11Forwarding no

しかし、接続するとsftpこのユーザーでは許可されていません。ログには、致命的な所有権が間違っているようです。chroot ディレクトリ コンポーネント "/home/website/public_html/" の所有権またはモードが不正です
しかし、このユーザーにサブディレクトリへのアクセス権を与えるためだけに、ツリー全体の所有権を変更することはできません。これを機能させる方法はありますか?

答え1

権限を変更する前に、Web サーバーにファイルとディレクトリに対する読み取り権限が少なくとも必要であることを考慮してください。また、ユーザー sfkmodules によって作成されたファイル/ディレクトリは、そのユーザーの所有となり、umask によっては Web サーバーから読み取れない場合があります。

検討すべき解決策としては、Web ルートの外部にある各自のディレクトリでユーザーを chroot し、ファイルがドロップされたときにそれを検出してそれらのファイルを Web ルートに移動する何らかのウォッチドッグを用意することです。こうすることで、所有権と権限を制御できます。

PERL と cron は、その取り組みに役立ちます。

答え2

グループを作成し、必要なユーザーとアクセスを許可する他のユーザーをグループに追加して、必要な権限を割り当てます。今回は chroot を使用しないでください。

以下のコマンドは CentOS 用ですが、概要は理解できると思います。

sudo groupadd groupname  
sudo usermod -a -G groupname admin  
sudo usermod -a -G groupname user1  
sudo chown -R admin:groupname /home/website/public_html/boutique/modules/wkmanagesuppliers  

関連情報