Yeni bir vsftpd kullanıcısı oluşturun ve home / login dizinine (belirtin) kilitleyin


31

Vsftp yüklü olan bir CentOS linux sunucusundaki çeşitli dizinlere geçici ve sınırlı erişim vermem gerekiyor.

Kullanarak bir kullanıcı oluşturdum useradd [user_name]ve kullandıklarında bir şifre verdim passwd [password].

İçinde bir dizin oluşturdum /var/ftpve sonra erişimi sınırlamak istediğim dizine bağladım.

Bu kullanıcı FTP'ye giriş yaptığında, yalnızca bu dizine erişebilmelerini sağlamak için başka ne yapmam gerekir?


Üzgünüz, vsftpd.conf dosyasını kontrol etmeyi hiç düşündünüz mü?
jirib

Evet. Sahibim. Belirli bir kullanıcıya belirli bir dizine giriş yapması talimatını vermez mi ...?
zigojacko

1
Emin? chroot_list_enable seçenek ... Veya $ HOME'dan farklı bir dizini geçersiz kılmak mı istiyorsunuz?
jirib

1
Belirli bir kullanıcı için belirli bir giriş dizini nasıl bildirileceğini bilmek istiyorum. Etkinleştirdim chroot_list_enableve oluşturdum /etc/vsftpd/chroot_list. Sadece ne yapacağımı bilemedim.
zigojacko

Sonra kullanıcının evini değiştirmek için usmod.
jirib

Yanıtlar:


44

Adım adım adım adım ilerleyen başkaları için sorumu çözen tam bir cevap ...

Bunu bir rehber olarakvsftpd kullanarak kurun .

  • İle kullanıcı oluştur useradd [user_name].
  • İle kullanıcı şifresini oluşturun passwd [user_name]. (Parolanızı belirtmeniz istenir).
  • FTP dizini oluşturun /var/ftpve sonra bu kullanıcı için belirtmek istediğiniz 'home' dizinine bağlanın mount --bind /var/www/vhosts/domain.com/ /var/ftp/custom_name/.
  • İle kullanıcının giriş dizinini değiştir usermod -d /var/ftp/custom_name/ user_name

    Altında /etc/vsftpd/vsftpd.conf, aşağıdakilerin tümünün ayarlandığından emin olun: -

    • chroot_local_user = EVET
    • chroot_list_enable = EVET
    • chroot_list_file = / etc / vsftpd.chroot_list

vsftpd.chroot_listDosyadaki kullanıcıları yalnızca sunucudaki herhangi bir yere tam olarak erişebilmelerini istiyorsanız listeleyin . Bunları bu dosyada listelememekle, tüm vsftpdkullanıcıları belirtilen giriş dizinleriyle sınırladığınızı söylüyorsunuz .

Başka bir deyişle (referans için): -

  1. varsayılan olarak, TÜM kullanıcılar, dosyadaki kullanıcılar haricinde chroot anlamına gelir ...
    • chroot_local_user = EVET
    • chroot_list_enable = EVET
  2. varsayılan olarak, SADECE dosyadaki kullanıcıların chrooted olacağı anlamına gelir ...
    • chroot_local_user = HAYIR
    • chroot_list_enable = EVET

Neden bu kullanıcının giriş dizinini doğrudan ayarlamıyorsunuz /var/www/vhosts/domain.com/? Bununla ilgili herhangi bir sorun var mı (potansiyel riskler gibi)?
leemes

2
Ben sadece vsftp güvenlik nedenleriyle chroot üst düzeyde bir ftp kullanıcısına yazma izinleri vermeyi yasaklıyor gibi göründüğünü öğrendim (ancak% 100 emin değilim). Bu nedenle ftp kullanıcısının herhangi bir kardeş klasörünü görüntülemesine izin vermeyerek belirli bir klasöre yazma izni vermek için bu "dolaylı" duruma sahip olmasının bir nedeni olabilir (ki bu sadece evini bir seviye ayarlamış olsaydı, belirtilen konudan kaçınır). (bkz. ubuntuforums.org/… )
leemes

2
@zigojacko kullanıcınız yalnızca atanmış giriş dizinini görüyor mu? Benim için bu , kullanıcıyı atanmış dizine varsayılan olarak ayarlıyor , ancak yine de diğer klasörleri görebiliyorlar ve sadece okuma erişimi olsa da, sonuna kadar dolaşabiliyorlar.
GraehamF

1
Bu cevap, unix.stackexchange.com/questions/208960/… ile birlikte benim için tam bir cevaptı. Bir grupta bir kullanıcı yarattım ve grubun istediği dizine erişimini kısıtladım.
GraehamF

10

Benim için yukarıdakilerden sonra bile işe yaramadı. Zaten bir dizine ayarlanmış bir local_root vardı ve ne yaparsam yapayım, kullanıcının dizini hapse atılmadı. Sonunda sadece değiştikten sonra çalıştı

chroot_local_user = EVET

Ve takip prosedürü

  1. vi /etc/vsftpd.conf
  2. 'User_config_dir = / etc / vsftpd_user_conf' satırını ekleyin (tırnak işaretleri olmadan)
  3. mkdir / etc / vsftpd_user_conf;
  4. cd / etc / vsftpd_user_conf
  5. vi kullanıcı_adı;
  6. Satır 'local_root = / srv / ftp / kullanıcı_adı' girin

Başkası aynı sorunu yaşarsa, sadece iki kuruş.


Gnaanaa ek adımlar da dahil olmak üzere vsftpd'nin kök dizinini değiştirmek için bu prosedürü izledim. Ne yazık ki, henüz çalışmıyor. Filezilla 530 yanlış giriş bildirdi. Kullanıcı ve şifre yukarıdaki prosedüre göre (kullanıcı_adı). Bir test kullanıcısı ftp2 oluşturdum ve şifresini belirledim. Filezilla normal oturum açma, bu kullanıcı adı ve şifreyi kullanır. Ayrıca kök dizini salt okunur olarak ayarladım ve bu yazıya göre yazma izinlerine sahip daha düşük seviyeli bir dizin oluşturdum, eğer herhangi bir fark yaratırsa Ubuntu 16.04 kullanıyorum.
tim11g

Herhangi bir fark yaratırsa Ubuntu 16.04 kullanıyorum, @gnaanaa. Ayrıca, / var içinde hiçbir ftp dizini olmamasının garip olduğunu düşündüm. Bu yüzden / var / ftp ve sonra / var / ftp / user_name 'yi oluşturmak zorunda kaldım. code<br/> Yanıt: 220 (vsFTPd 3.0.3) <br/> Komut: USER ftp2 <br/> Yanıt: 331 Lütfen şifreyi belirtin. <br/> Komut: PASS ***** <br/> Yanıt : 530 Giriş yanlış. <br/> Hata: Kritik hata: Sunucuya bağlanılamadı <br/>code
tim11g 14:16

Öncelikle, neden sunucuya giriş yapamadığınıza bakın. Sorun, yalnızca başarılı bir oturum açtıktan sonra hapse atılır. Şerefe.
gnaanaa

Vsftp, makinedeki hesaplara kıyasla farklı bir kullanıcı / şifre kullanıyor mu? Smb şifrelerinin smbpasswd -a ile ayrı ayrı ayarlanması gerektiğini keşfettim. Vsftpd aynı şekilde çalışıyor mu?
tim11g

Hayır, sistem kullanıcı hesabı. Bu cevabı kontrol et: askubuntu.com/questions/413677/vsftpd-530-login-incorrect
gnaanaa
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.