0
短い話ですが、私は小さなWebホスティングサーバーを構築する初期段階にあります。私は顧客のために新しいサイトを作成すると、この処理が行われます。Ubuntu - PHPを使ってLinux/Apacheユーザーがホームディレクトリ以外のものを表示させないようにする
新しいLinuxユーザーは、ホームディレクトリに作成され- および/ sbinに/ nologinに ユーザーはグループsftpusers
- のpublic_htmlを作成するに追加され
- ユーザーのホームディレクトリに
- 新しいApacheのバーチャルホストは、サイトが開始され
- を作成され、プロセスはMPM-ITKとAssignUserId
これまでのところすべて井戸です。ユーザーはホームディレクトリにsftpしか置くことができず、そこにファイルを置くことができます。 WinSCPなどのSFTPクライアントを使用している場合、ユーザーはホームディレクトリ外をナビゲートできません。
問題は、彼らはPHPのビットでホームディレクトリの外のものをリストすることができるということです。これは、すべてを一覧表示されますの/ etc /:
$scan = scandir(/etc);
foreach ($scan as $i) {
echo $i;
}
これは私の問題であり、それはに対処する必要がありますが、私は実際にどのように知りません。
私は、/ etc/ssh/sshd_config:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no
追加情報が必要な場合は私に知らせてください。