SFTP: hapisli (chrooted) bir dizinde dosya işaretleri


22

Sftp ayarlamaya çalışıyorum, böylece birkaç güvenilir insan bazı dosyalara erişebilir / düzenleyebilir / yaratabilir. Bir kullanıcıyı ev dizinine (/ home / name) hapis yattım ancak bir sorunla karşılaştım. Ayrıca VPS'nin diğer bölümlerine de erişebilmelerini istiyorum, çünkü bu aynı zamanda bir oyun sunucusu, webhost, vb. Ve onların da hapishane dizinleri dışındaki dosyaların tüm kontrolünü ellerinde tutabilmelerini istiyorum.

İstenen dizine bir link (ln-s) yapmayı denedim, ancak beklendiği gibi çalışmıyor. Erişmek istediğim dosyalara (cp -rl) denedim ve işe yaradı - dizindeki dosyaları düzenleyebildiler ve hapishanenin dışında depolananları değiştirdiler. AMA yeni dosyalar yaratamazlar (yapabilirler ancak hapishane dışında güncellenemezler). Muhtemelen bunu "doğru yol" yapmıyorum ama ne istersem onu ​​yapabilirim?

Yanıtlar:


40

Sembolik bağlantılar tamamen semboliktir: yoldan başka bir şey içermezler, bu yüzden bir sembolik bağlantı açtığınızda, işletim sistemi yolu okur ve bunun yerine kullanır. Chroot bir ortamda, bağlantılar (özellikle mutlak yollara sahip olanlar) normal ortamda gösterdikleri yere işaret etmezler.

Sunucu işletim sistemi Linux ise, en iyi bahis, tüm dizini chroot dizininin herhangi bir yerine bağlamaktır. Bunu kullanırken, bunun dizinin bir kopyası olmadığını hatırlamak önemlidir, burada silinen herhangi bir şey diğer dizinden kaldırılır (kullanıcı mvdosya yapabiliyorsa veya önemli ise rm -rf). Bunu yapmak için:

mount --bind /some/directory /somewhere/else

Dizindeki dosyalar gerçek dosyalar olmalı. Buradaki sembolik bağlantılar muhtemelen ilk etapta dosyalara bağlamaya çalıştığınız problemlerle aynı olacaktır.


Cevabınız için teşekkürler. Lütfen bunu nasıl çalıştırabileceğime dair bir öğreticiyi açıklayabilir veya işaret edebilir misiniz? Misafirler için ssh'yi devre dışı bıraktım, bu yüzden sadece sftp erişimine sahipler. Bu komutu hangi dosyaya koyabilirim?
dukevin

Yaygın olarak tavsiye edilmese de, daha basit olurdu, ancak tüm dosyalar aynı aygıttaysa, dizin sabit bağlantıları da oluşturabilirsiniz.
Falcon Momot

Bunun için komut nedir
dukevin

@KevinDuke Bu, kullanıcıların kendilerinin yapabileceği bir şey değil, yalnızca root mountbu şekilde kullanabilir . Bunu belirtmenin bir yolu olabilir, /etc/fstabbu yüzden önyükleme sırasında otomatik olarak yapılır, ancak nasıl emin değilim
DerfK

1
Teşekkür ederim. Bazı dersler okudum ve anladım. Cevabınız gerçekten doğru yöne işaret etmemi sağladı. Teşekkürler! Know-isteyenler için, bu yardım: aplawrence.com/Linux/mount_bind.html freebsd.org/doc/en_US.ISO8859-1/books/handbook/... redbottledesign.com/...
dukevin
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.