Каковы настройки для исправления ошибки vsftpd «500 OOPS: невозможно изменить каталог»?

13

У меня вопрос, какие настройки мне нужно изменить и / или команды для запуска, чтобы я мог войти в систему vsftpd?

Я получаю эту ошибку при входе в систему с использованием ftp вместо sftp:

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

Это работает при входе в систему с использованием sftp@, но мой сервер находится за брандмауэром, и мне нужно иметь возможность войти в систему, используя как ftp, так и sftp.

Я просматривал довольно много сообщений об ошибке "OOPS", но до сих пор не повезло, войдя в систему.

Вот некоторая информация о моей системе и настройках:

Я использую CentOS 6.4.

iptables и ip6tables остановлены и отключены.

Мой домашний каталог защищен 700, и я попробовал 750, просто чтобы увидеть, если это что-то изменило. Это не так.

Вот активные линии в /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

Моего логина нет в user_list.

octopusgrabbus
источник
Даже я столкнулся с той же проблемой ..> Попробуйте изменить доступ к 775, у меня это сработало.
Если проблема все еще возникает, даже если вы отключили selinux, перепроверьте разрешения вашего каталога. У вашего пользователя ftp действительно есть права в этой папке? или установлен ли какой-либо бит setgid у родителя этой папки? Бит 's' в родительской папке может вызвать проблемы, если вы попытаетесь создать новую папку ниже.
Chatchai Mao

Ответы:

10

Запустите эту команду, нет необходимости перезапускать какой-либо сервис и сервер:

# setenforce 0

Чтобы проверить состояние SELinux:

# getenforce

или

отредактируйте файл /etc/sysconfig/selinuxдля включения

SELINUX=disabled

Для этого потребуется перезагрузка.

Mitter
источник
3
Интересно, что я получил отрицательный голос за почти тот же ответ полтора года назад.
octopusgrabbus
7

Хотя отключение SELinux SELINUX=disabledрешит проблему, это не рекомендуется. Вы можете разрешить пользователю ftp доступ к его домашнему каталогу, настроив логическое значение SELinux ftp_home_dir, выполнив следующую команду:

setsebool -P ftp_home_dir=1
Индика К
источник
Нужны ли обратные метки или результат встроенного и блочного форматирования кода / команд?
Антон
Нет, галочки не нужны.
suprjami
это должно быть лучшим решением проблемы, чтобы избежать снижения уровня безопасности всей системы без SELinux.
Томофуми
Логический ftp_home_dir не определен ??
Exlord
3

вы всегда можете разрешить демону FTP полный доступ ко всем файлам, запустив

setsebool -P allow_ftpd_full_access 1
Би Кей
источник
2

Я отключил selinux, следуя этим инструкциям здесь . Я смог войти не используя sftp.

Чтобы отключить навсегда, я отредактировал /etc/selinux/configи установил

SELINUX=disabled

После перезагрузки я смог нормально войти в систему.

octopusgrabbus
источник
2
Отключение SELinux - это этап устранения неполадок, позволяющий определить, является ли SELinux причиной проблемы, а не окончательным решением. После того, как вы определили, что причиной является SELinux, вы должны изучить ваши отказы AVC и определить, какой логический параметр вам нужно изменить, или создать собственную политику с помощью инструментов SELinux. Постоянное отключение SELinux не очень хорошая идея.
suprjami
0

Вероятно, пользователь не имеет прав на выполнение в своей домашней папке. Выполнение:

chmod +x /home/user

или,

chmod 700 /home/user
sharpy1064
источник
0

Надеюсь, это может помочь.

local_root=/var/www/ftp/$USER
user_sub_token=$USER
Пропавшие Близнецы
источник
1
Добро пожаловать на сайт и спасибо за ваш вклад. Не могли бы вы добавить больше объяснений относительно того, как (т.е. по какому механизму) ваш ответ решает исходную проблему? Это может дать другим, сталкивающимся с подобной проблемой, более глубокое понимание того, почему они имеют эту проблему в первую очередь.
AdminBee
-1

Запуск, setenforce 0как предложил другой ответ, не работал для меня.

Следующая команда решила проблему:

chmod -R 755 /home/dbadmin

(Ранее каталог / home / dbadmin имел 700 разрешений.)

pacoverflow
источник