Quels sont les paramètres pour corriger l'erreur vsftpd «500 OOPS: impossible de changer de répertoire»?


13

Ma question est de savoir quels paramètres dois-je modifier et / ou quelles commandes exécuter pour me permettre de me connecter à mon système vsftpd?

Je reçois cette erreur lorsque je me connecte en utilisant ftp au lieu de sftp:

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

Cela fonctionne lors de la connexion en utilisant sftp@, mais mon serveur est derrière un pare-feu, et je dois pouvoir me connecter en utilisant ftp ainsi que sftp.

J'ai consulté pas mal de messages sur l'erreur "OOPS" mais jusqu'à présent, je n'ai pas eu de chance pour me connecter.

Voici quelques informations sur mon système et mes paramètres:

J'utilise CentOS 6.4.

iptables et ip6tables sont arrêtés et désactivés.

Mon répertoire personnel est protégé 700, et j'en ai essayé 750, juste pour voir si cela fait une différence. Il n'a pas.

Voici les lignes actives dans /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

Mon nom de connexion n'est pas dans la liste d'utilisateurs.


Même moi j'ai fait face au même problème ..> Essayez de changer l'accès au 775, cela a fonctionné pour moi.

Si le problème persiste même si vous avez désactivé selinux, veuillez revérifier les autorisations de votre répertoire. Votre utilisateur ftp a-t-il vraiment des droits sur ce dossier? ou Un bit setgid est-il défini au niveau du parent de ce dossier? Un bit 's' dans le dossier parent peut provoquer un problème si vous essayez de créer un nouveau dossier en dessous.
Chatchai Mao du

Réponses:


10

Exécutez cette seule commande, pas besoin de redémarrer un service ou un serveur:

# setenforce 0

Pour vérifier l'état de SELinux:

# getenforce

ou

éditez le fichier /etc/sysconfig/selinuxpour l'inclure

SELINUX=disabled

Cela nécessitera un redémarrage.


3
Il est intéressant de noter que j'ai obtenu un vote au volant pour la même réponse il y a un an et demi.
octopusgrabbus

7

Bien que la désactivation de SELinux par SELINUX=disabledrésoudra le problème, cela ne serait pas conseillé. Vous pouvez permettre à l'utilisateur ftp d'accéder à son répertoire personnel en configurant la valeur booléenne SELinux ftp_home_diren exécutant la commande suivante:

setsebool -P ftp_home_dir=1

Les ticks arrière sont-ils nécessaires ou résultent-ils d'un formatage en ligne et en bloc du code / des commandes?
Anthon

Non, les backticks ne sont pas nécessaires.
suprjami

cela devrait être la meilleure réponse pour résoudre le problème, pour éviter d'abaisser le niveau de sécurité de l'ensemble du système sans SELinux.
Tomofumi

Ftp_home_dir booléen n'est pas défini ??
Exlord

3

vous pouvez toujours autoriser le démon FTP à accéder à tous les fichiers en exécutant

setsebool -P allow_ftpd_full_access 1

2

J'ai désactivé selinux en suivant ces instructions ici . J'ai pu me connecter sans utiliser sftp.

Pour désactiver définitivement, j'ai édité /etc/selinux/configet défini

SELINUX=disabled

Après le redémarrage, j'ai pu me connecter normalement.


2
La désactivation de SELinux est une étape de dépannage pour déterminer si SELinux est la cause du problème, pas une solution finale. Une fois que vous avez déterminé que SELinux en est la cause, vous devez examiner vos refus AVC et déterminer quel booléen vous devez modifier, ou créer une stratégie personnalisée avec les outils SELinux. La désactivation permanente de SELinux n'est pas une bonne idée.
suprjami

0

L'utilisateur n'a probablement aucun privilège d'exécution sur son dossier de départ. Effectuer:

chmod +x /home/user

ou,

chmod 700 /home/user

0

J'espère que cela pourrait vous aider.

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

1
Bienvenue sur le site et merci pour votre contribution. Pourriez-vous ajouter plus d'explications sur la façon (c.-à-d. Par quel mécanisme) votre réponse résout le problème d'origine? Cela pourrait donner à d'autres personnes confrontées à un problème similaire une meilleure idée de la raison pour laquelle elles ont ce problème en premier lieu.
AdminBee

-1

Courir setenforce 0comme une autre réponse suggérée n'a pas fonctionné pour moi.

La commande suivante a résolu le problème:

chmod -R 755 /home/dbadmin

(Auparavant, le répertoire / home / dbadmin avait 700 autorisations.)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.