sftpを介したシンボリックリンクとfilezilla


15

私はdebianにかなり慣れていないので、サーバーをセットアップしようとしています。

自分のフォルダ/home/username(およびそのサブディレクトリ)にのみアクセスできるユーザーを作成しました。

今、私は設定したウェブサーバーにそのユーザーを使用したいと思います、そして彼にアクセスを与えました/var/www/var/www、sftpを通して見ることができず、私はこのようなシンボリックリンクをしました:

root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *

さて、filezillaを使用すると、次のようなwwwフォルダーが表示されます。

Filezilla

しかし、開こうとすると、次のようになります。

開いた

私が間違っているのは何ですか?

回答:


22

SFTPがchrootされている可能性が高いため、ディレクトリ/ var / wwwはchroot jailのユーザーには使用できません。

/etc/ssh/sshd_configおよびSFTPディレクティブを調べます。次のようなものが見えますか:

Match group sftp
  ChrootDirectory /home/%u
  AllowTcpForwarding no
  ForceCommand internal-sftp

sshd_configのmanページはこちらです。

基本的に、ユーザーが/home/usernameSFTPに入ると、そのディレクトリになり/、外部の参照/home/usernameは使用できなくなります。実際、次のようなシンボリックリンクは、ln -s /var/www /home/username/www到達しようとしているように見えます/home/username/var/www(つまり、参照するリンクもchrootのコンテキスト内のサブディレクトリでなければならないため)。/home/username//var/www/home/username

解決策として、chrootをオフにすることができます(ただし、これには主にSFTPユーザーがファイルシステムを完全に管理しているため、他のセキュリティに影響します)。/ var / wwwを/ home / username / wwwにループマウントできますmount --bind /var/www /home/username/wwwmountchrootで期待どおりに動作するはずの(ドキュメントを確認してください))。sshd_configファイルをいじって、特定の1人のユーザーをchrootから除外することもできます(ただし、セキュリティの影響があります)。

最初にバインドマウントを試します。


2
マウントの+1-バインドトリック!
ヘルゲクライン

1
再起動後も保持する場合は、次の/etc/fstabような行を編集します/home/username/www /var/www none bind 0 0
pzkpfw

0

私が作成したシンボリックリンクのリンク解除を解決しました

root@server:/home/username# mkdir www
root@server:/home/username# mount --bind /home/username/www /var/www

(たとえすべてを失ったとしても/ var / wwwにありましたが、気にしません)

皆さんありがとう!


何も失っていない。再マウントする前にファイルをアンマウントしてコピーするだけです。
ゾレダチェ

ありがとうございます!リンクのあるファイルは1つしかなく、重要なことは何もありませんでしたが、それを回復することができませんでした:D
Doc
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.