Apa pengaturan untuk memperbaiki kesalahan vsftpd "500 OOPS: tidak dapat mengubah direktori"?

13

Pertanyaan saya adalah pengaturan apa yang perlu saya ubah dan / atau perintah untuk menjalankan agar saya dapat masuk ke sistem vsftpd saya?

Saya mendapatkan kesalahan ini, ketika saya login menggunakan ftp bukan sftp:

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

Ini berfungsi saat masuk menggunakan sftp@, tetapi server saya ada di belakang firewall, dan saya harus bisa masuk menggunakan ftp dan sftp.

Saya telah melihat beberapa posting tentang kesalahan "OOPS" tetapi sejauh ini tidak berhasil masuk.

Berikut ini beberapa informasi tentang sistem dan pengaturan saya:

Saya menjalankan CentOS 6.4.

iptables dan ip6tables dihentikan dan dinonaktifkan.

Direktori rumah saya dilindungi 700, dan saya telah mencoba 750, hanya untuk melihat apakah itu membuat perbedaan. Itu tidak.

Berikut adalah baris aktif di /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

Nama login saya tidak ada di user_list.

octopusgrabbus
sumber
Bahkan saya menghadapi masalah yang sama ..> Coba ubah akses ke 775, itu berhasil untuk saya.
Jika masalah masih terjadi meskipun Anda telah menonaktifkan selinux, harap periksa kembali izin direktori Anda. Apakah pengguna ftp Anda benar-benar memiliki hak di folder itu? atau Apakah ada setgid bit yang ditetapkan pada induk folder itu? Bit A di folder induk mungkin menyebabkan masalah, jika Anda mencoba membuat folder baru di bawahnya.
Chatchai Mao

Jawaban:

10

Jalankan perintah ini, tidak perlu me-restart layanan & server apa pun:

# setenforce 0

Untuk memeriksa status SELinux:

# getenforce

atau

edit file /etc/sysconfig/selinuxuntuk dimasukkan

SELINUX=disabled

Melakukannya akan membutuhkan reboot.

Mitter
sumber
3
Sangat menarik saya mendapat suara drive-by down untuk jawaban yang hampir sama satu setengah tahun yang lalu.
octopusgrabbus
7

Meskipun menonaktifkan SELinux dengan SELINUX=disabledakan memecahkan masalah ini tidak akan disarankan. Anda dapat mengaktifkan pengguna ftp untuk mengakses direktori rumahnya dengan mengkonfigurasi nilai SELinux boolean ftp_home_dirdengan menjalankan perintah berikut:

setsebool -P ftp_home_dir=1
Indika K
sumber
Apakah kutu belakang diperlukan, atau hasil dari inline dan blok pemformatan kode / perintah?
Anthon
Tidak, backticks tidak diperlukan.
suprjami
ini harus menjadi jawaban terbaik untuk memecahkan masalah, untuk menghindari menurunkan tingkat keamanan seluruh sistem tanpa SELinux.
Tomofumi
Boolean ftp_home_dir tidak didefinisikan ??
Tuan
3

Anda selalu dapat mengizinkan daemon FTP akses penuh ke semua file dengan menjalankan

setsebool -P allow_ftpd_full_access 1
Bee Kay
sumber
2

Saya menonaktifkan selinux dengan mengikuti instruksi ini di sini . Saya bisa masuk tidak menggunakan sftp.

Untuk menonaktifkan secara permanen, saya mengedit /etc/selinux/configdan mengatur

SELINUX=disabled

Setelah reboot, saya bisa masuk secara normal.

octopusgrabbus
sumber
2
Menonaktifkan SELinux adalah langkah pemecahan masalah untuk menentukan apakah SELinux adalah penyebab masalah, bukan solusi akhir. Setelah Anda menentukan SELinux adalah penyebabnya, Anda harus melihat penolakan AVC Anda dan menentukan boolean mana yang perlu Anda ubah, atau buat kebijakan khusus dengan alat SELinux. Menonaktifkan SELinux secara permanen bukanlah ide yang baik.
suprjami
0

Mungkin pengguna tidak memiliki hak eksekusi di folder beranda mereka. Melakukan:

chmod +x /home/user

atau,

chmod 700 /home/user
sharpy1064
sumber
0

Semoga ini bisa membantu.

local_root=/var/www/ftp/$USER
user_sub_token=$USER
Kembar yang Hilang
sumber
1
Selamat datang di situs ini dan terima kasih atas kontribusi Anda. Maukah Anda menambahkan lebih banyak penjelasan tentang bagaimana (yaitu dengan mekanisme apa) jawaban Anda memecahkan masalah asli? Ini mungkin memberi orang lain menghadapi masalah serupa lebih banyak wawasan tentang mengapa mereka memiliki masalah ini di tempat pertama.
AdminBee
-1

Berjalan setenforce 0sebagai jawaban lain yang disarankan tidak berhasil untuk saya.

Perintah berikut memecahkan masalah:

chmod -R 755 /home/dbadmin

(Sebelumnya direktori / home / dbadmin memiliki 700 izin.)

aliran balik pacover
sumber