Sftp üzerinde sembolik bağlantı ve filezilla


15

Debian için oldukça yeniyim ve bir sunucu kurmaya çalışıyorum.

Yalnızca klasörüne /home/username(ve alt dizinine) erişebilen bir kullanıcı oluşturdum .

Şimdi bu kullanıcıyı kurduğum web sunucusu için kullanmak istiyorum ve ona erişim /var/wwwverdim ama /var/wwwsftp ile göremiyorum ve bunun gibi sembolik bir bağlantı yaptım:

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

Şimdi, filezilla ile www klasörünü şöyle görebilirsiniz:

filezilla

Ama açmaya çalıştığımda şunu anlıyorum:

Açık

Neyi yanlış yapıyorum?

Yanıtlar:


22

SFTP'nin muhtemelen köklü olması nedeniyle, / var / www dizini, kök hapishanedeki kullanıcı tarafından kullanılamaz.

/etc/ssh/sshd_configSftp yönergelerine bakın ve inceleyin. Şuna benzer bir şey görüyor musunuz:

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

Sshd_config kılavuz sayfası burada .

Temel olarak, kullanıcı SFTP'ye girdikten sonra /home/username, bu dizin olur /ve dışındaki referanslar /home/usernamekullanılamaz. Aslında, böyle bir sembolik ln -s /var/www /home/username/wwwsen ulaşmak için çalışıyoruz gibi görünecektir /home/username/var/www(yani /home/usernameşimdi /gönderme yapmayan herhangi bir bağlantı /var/wwwda bir alt dizin olmalıdır /home/usernamechroot bağlamında).

Bir çözüm olarak, chroot'u kapatabilirsiniz (ancak bunun, esas olarak dosya sisteminiz üzerinde tam dizginleri olan SFTP kullanıcıları ile) başka güvenlik sonuçları olacaktır. Bir döngü (gibi bir şey / var / www içine / home / kullanıcı adı / www monte yapabilirsiniz mount --bind /var/www /home/username/www(için belgelerine kontrol mountEğer chroot altında beklediğiniz gibi çalışması gerekir)). Ayrıca, belirli bir kullanıcıyı chroot'tan hariç tutmak için sshd_config dosyasıyla da yapıştırabilirsiniz (yine de güvenlik etkileriyle).

Önce bağlama bağını denerdim.


2
Mount - bağlama hilesi için +1!
Helge Klein

1
Yeniden başlatmalarda kalıcı olmasını istiyorsanız, aşağıdaki /etc/fstabgibi bir satırla düzenleyin/home/username/www /var/www none bind 0 0
pzkpfw

0

Yaptığım sembolik bağlantının bağlantısını kaldırdım ve

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

(her şeyi kaybetsem bile / var / www idi, ama umrumda değil)

hepinize teşekkürler!


Hiçbir şey kaybetmedin. Yeniden takmadan önce dosyalarınızı çıkarın ve kopyalayın.
Zoredache

uuuhhh teşekkür ederim! bir bağlantı ile 1 dosya dışında hiçbir şey vardı, önemli bir şey, ama ben onu kurtarmak için anlamaya olamazdı: D
Doc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.