Vsftpd “500 OOPS: dizin değiştirilemiyor” hatasını düzeltmek için ayarlar nelerdir?


14

Sorum şu: vsftpd sistemime giriş yapmama izin vermek için hangi ayarları değiştirmem ve / veya komutları çalıştırmam gerekiyor?

Sftp yerine ftp kullanarak giriş yaptığımda bu hatayı alıyorum:

Name (localhost:dbadmin): dbadmin
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/dbadmin
Login failed.
ftp> 

Bu kullanarak oturum açarken çalışır sftp@, ancak sunucum bir güvenlik duvarının arkasında ve ben ftp yanı sıra sftp kullanarak oturum açabilmek gerekir.

"OOPS" hatası hakkında oldukça az yazı bakıyordum ama şimdiye kadar giriş şansımız olmadı.

Sistemim ve ayarlarım hakkında bazı bilgiler:

CentOS 6.4 kullanıyorum.

iptables ve ip6tables durdurulur ve devre dışı bırakılır.

Giriş dizinim 700 korumalı ve 750'yi denedim, sadece bunun bir fark yaratıp yaratmadığını görmek için. Yapmadım.

İşte aktif hatlar /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

Giriş adım kullanıcı_ listesinde değil.


Ben de aynı sorunla karşılaştım ..> 775 erişim değiştirmeyi deneyin, benim için çalıştı.

Selinux'u devre dışı bırakmış olsanız bile sorunun devam etmesi durumunda, lütfen dizininizin izinlerini tekrar kontrol edin. Ftp kullanıcınızın gerçekten bu klasörde hakları var mı? veya Herhangi bir setgid biti bu klasörün üst kısmında ayarlanmış mı? Altında yeni bir klasör oluşturmaya çalışırsanız üst klasördeki 's' biti soruna neden olabilir.
Chatchai Mao

Yanıtlar:


10

Bu komutu çalıştırın, herhangi bir hizmet ve sunucuyu yeniden başlatmanıza gerek yok:

# setenforce 0

SELinux durumunu kontrol etmek için:

# getenforce

veya

/etc/sysconfig/selinuxdahil edilecek dosyayı düzenle

SELINUX=disabled

Bunu yapmak için yeniden başlatma gerekir.


3
Bir buçuk yıl önce hemen hemen aynı cevap için aşağı doğru oy kullanmam ilginç.
octopusgrabbus

7

SELinux'u devre dışı bırakmak SELINUX=disabledsorunu çözecektir, ancak bu tavsiye edilmez. ftp_home_dirAşağıdaki komutu çalıştırarak SELinux boolean değerini yapılandırarak ftp kullanıcısının ana dizinine erişmesini sağlayabilirsiniz :

setsebool -P ftp_home_dir=1

Geri keneler gerekli mi veya kod / komutların satır içi ve blok biçimlendirmesinin sonucu mu?
Anthon

Hayır, ters çentikler gerekli değildir.
suprjami

SELinux olmadan tüm sistemin güvenlik seviyesini düşürmemek için sorunu çözmek için en iyi cevap bu olmalıdır.
Tomofumi

Boolean ftp_home_dir tanımlanmamış mı ??
Exlord

3

FTP arka plan programının çalıştırarak tüm dosyalara tam erişimine her zaman izin verebilirsiniz

setsebool -P allow_ftpd_full_access 1

2

Buradaki talimatları izleyerek selinux'u devre dışı bıraktım . Sftp kullanmadan oturum açabildim.

Kalıcı olarak devre dışı bırakmak için düzenledim /etc/selinux/configve ayarladım

SELINUX=disabled

Yeniden başlattıktan sonra normal şekilde giriş yapabildim.


2
SELinux'u devre dışı bırakmak, SELinux'un son çözüm değil sorunun nedeni olup olmadığını belirlemek için bir sorun giderme adımıdır. Sebep SELinux'u belirledikten sonra, AVC reddetmelerinize bakmalı ve hangi booleanı değiştirmeniz gerektiğini belirlemeli veya SELinux araçlarıyla özel bir politika yapmalısınız. SELinux'u kalıcı olarak devre dışı bırakmak iyi bir fikir değildir.
suprjami

0

Muhtemelen kullanıcının ana klasöründe yürütme ayrıcalığı yoktur. gerçekleştirin:

chmod +x /home/user

veya,

chmod 700 /home/user

0

Umarım bu yardımcı olabilir.

local_root=/var/www/ftp/$USER
user_sub_token=$USER

1
Siteye hoş geldiniz ve katkınız için teşekkür ederiz. Cevabınızın orijinal sorunu nasıl çözdüğüne (yani hangi mekanizma ile) dair daha fazla açıklama eklemek ister misiniz? Bu, benzer bir sorunla karşılaşan diğerlerine neden bu sorunu ilk başta sahip oldukları konusunda daha fazla fikir verebilir.
AdminBee

-1

setenforce 0Başka bir cevap önerilen olarak çalıştırmak benim için işe yaramadı.

Aşağıdaki komut sorunu çözdü:

chmod -R 755 /home/dbadmin

(Daha önce / home / dbadmin dizininde 700 izin vardı.)

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.