Chroot dışındaki bir dizine içinden içinden nasıl erişebilirim?


33

Ev dizinine chroot edilmiş bir kullanıcı var, ancak onun içindeki dosyaları da yönetebilmesini istiyorum /var/www. Gibi, aşağıdakileri 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 *

Ancak, /wwwFileZilla ile açmaya çalıştığımda "böyle bir dosya veya dizin yok" döndürür. Bağlantılı dizini görebiliyorum ancak erişemiyorum. Neyi yanlış yapıyorum?

Yanıtlar:


52

O bir dosya aradığı için Symlinks esasen başka bir dosyaya sadece noktalar şunlardır, sen chroot dışında bir şeye işaret edemez adıyla ( /var/wwwchroot içeride yok). Hardlinks ise inode için işaretçilerdir. Dolayısıyla, bunu yapmak istiyorsanız, ihmal ederek sert bir bağlantı kullanmanız gerekir -s. Ancak, Linux'ta bir dizini ( .ve dışında ..) çeşitli nedenlerle (bunlardan biri bu dosya sistemlerinin bir DAG olduğu gerçeği ) bağlayamazsınız .

Belki de en iyi yol bağlama bağlama kullanmaktır. Bunu dene:

mount --bind /var/www /home/username/www

ln: '/var/www': hard link not allowed for directory
Doktor

7
@Doc - Dizinler Linux'ta zor bağlantılı olamaz. Bağlama bağlantısı çalışmalıdır.
Chris Down

1
Kalıcı yapmak için bunu fstab'a ekleyebilir miyim?
Kornel

Dizinler arasında yinelenebilir ve ağacı sert bağlantılarla çoğaltabilir misiniz? Örneğin eğer ebeveyn varsa /foo/a.txtve /foo/bar/b.txtsonra yapabilirdi mkdir -p ./chroot/foo/; mkdir -p ./chroot/foo/bar; ln /foo/a.txt ./chroot/foo/a.txt; ln /foo/bar/b.txt ./chroot/foo/bar/b.txt? Yoksa bu hala bir nedenden dolayı işe yaramaz mı? (Açıkçası bu, elle yapmak yerine yapılacak bir senaryo yazacağınız bir şeydir).
shadowtalker

1
@Kornel seçeneği noneile birlikte bu modu kullanabilirsiniz bind: serverfault.com/questions/613179/…
Yvan
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.