Quali sono le impostazioni per correggere l'errore "500 OOPS: impossibile cambiare directory" di vsftpd?


13

La mia domanda è: quali impostazioni devo modificare e / o comandi da eseguire per consentirmi di accedere al mio sistema vsftpd?

Ricevo questo errore quando accedo usando ftp invece di sftp:

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

Funziona quando accedo usando sftp@, ma il mio server è protetto da un firewall e devo essere in grado di accedere usando ftp e sftp.

Ho esaminato alcuni post sull'errore "OOPS" ma finora non ho avuto fortuna ad accedere.

Ecco alcune informazioni sul mio sistema e le mie impostazioni:

Uso CentOS 6.4.

iptables e ip6tables vengono arrestati e disabilitati.

La mia directory home è protetta 700 e ho provato 750, solo per vedere se questo ha fatto la differenza. Io non l'ho fatto.

Ecco le linee attive in /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

Il mio nome di accesso non è nella lista_utente.


Anche io ho riscontrato lo stesso problema.> Prova a cambiare l'accesso a 775, ha funzionato per me.

Se il problema persiste anche se hai disabilitato selinux, ricontrolla le autorizzazioni della tua directory. Il tuo utente ftp ha davvero i diritti su quella cartella? o C'è qualche bit setgid impostato sul genitore di quella cartella? Un bit 's' nella cartella principale potrebbe causare un problema, se si tenta di creare una nuova cartella sottostante.
Chatchai Mao,

Risposte:


10

Esegui questo comando, non è necessario riavviare alcun servizio e server:

# setenforce 0

Per verificare lo stato di SELinux:

# getenforce

o

modifica il file /etc/sysconfig/selinuxda includere

SELINUX=disabled

Ciò richiederà un riavvio.


3
È interessante il fatto che ho ottenuto un voto negativo di quasi la stessa risposta un anno e mezzo fa.
octopusgrabbus,

7

Sebbene disabilitare SELinux da SELINUX=disabledrisolverà il problema, ciò non sarebbe consigliabile. È possibile abilitare l'utente ftp ad accedere alla sua home directory configurando il valore booleano SELinux ftp_home_direseguendo il comando seguente:

setsebool -P ftp_home_dir=1

Sono necessari i segni di spunta posteriori o il risultato della formattazione in linea e bloccata di codice / comandi?
Anthon,

No, i backtick non sono necessari.
suprjami,

questa dovrebbe essere la risposta migliore per risolvere il problema, per evitare di abbassare il livello di sicurezza dell'intero sistema senza SELinux.
Tomofumi,

Il ftp_home_dir booleano non è definito ??
Exlord, il

3

puoi sempre consentire al demone FTP l'accesso completo a tutti i file eseguendo

setsebool -P allow_ftpd_full_access 1

2

Ho disabilitato selinux seguendo queste istruzioni qui . Sono stato in grado di accedere non usando sftp.

Per disabilitare permanentemente, ho modificato /etc/selinux/confige impostato

SELINUX=disabled

Dopo il riavvio, sono stato in grado di accedere normalmente.


2
La disabilitazione di SELinux è una fase di risoluzione dei problemi per determinare se SELinux è la causa del problema, non una soluzione finale. Una volta che hai determinato SELinux è la causa, dovresti esaminare i tuoi rifiuti AVC e determinare quale valore booleano devi cambiare, o fare una politica personalizzata con gli strumenti SELinux. Disabilitare SELinux in modo permanente non è una buona idea.
suprjami,

0

Probabilmente l'utente non ha privilegi di esecuzione sulla propria cartella home. Eseguire:

chmod +x /home/user

o,

chmod 700 /home/user

0

Spero che questo possa aiutare.

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

1
Benvenuti nel sito e grazie per il vostro contributo. Ti dispiacerebbe aggiungere ulteriori spiegazioni su come (ad es. Con quale meccanismo) la tua risposta risolva il problema originale? Ciò potrebbe fornire ad altri che si trovano ad affrontare un problema simile ulteriori informazioni sul motivo per cui hanno questo problema in primo luogo.
AdminBee

-1

Correre setenforce 0come suggerito da un'altra risposta non ha funzionato per me.

Il seguente comando ha risolto il problema:

chmod -R 755 /home/dbadmin

(In precedenza la directory / home / dbadmin aveva 700 autorizzazioni.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.