การตั้งค่าเพื่อแก้ไข vsftpd“ 500 OOPS คืออะไร: ไม่สามารถเปลี่ยนไดเรกทอรี” ข้อผิดพลาด?


14

คำถามของฉันคือการตั้งค่าใดที่ฉันจำเป็นต้องเปลี่ยนและ / หรือคำสั่งเพื่อให้สามารถเข้าสู่ระบบ 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


แม้ว่าฉันจะเผชิญกับปัญหาเดียวกัน .. > ลองเปลี่ยนการเข้าถึงเป็น 775 แต่ก็ใช้งานได้สำหรับฉัน

ในกรณีที่ปัญหายังคงเกิดขึ้นแม้ว่าคุณจะปิดใช้งาน selinux โปรดตรวจสอบสิทธิ์ของไดเรกทอรีของคุณอีกครั้ง ผู้ใช้ ftp ของคุณมีสิทธิ์ในโฟลเดอร์นั้นจริงๆหรือ หรือบิต setgid ใด ๆ ตั้งค่าที่พาเรนต์ของโฟลเดอร์นั้นหรือไม่? บิตที่โฟลเดอร์พาเรนต์อาจทำให้เกิดปัญหาหากคุณพยายามสร้างโฟลเดอร์ใหม่ด้านล่าง
ฉัตรชัยเหมา

คำตอบ:


10

เรียกใช้คำสั่งนี้โดยไม่จำเป็นต้องรีสตาร์ทเซอร์วิส & เซิร์ฟเวอร์:

# setenforce 0

วิธีตรวจสอบสถานะ SELinux:

# getenforce

หรือ

แก้ไขไฟล์ที่/etc/sysconfig/selinuxจะรวม

SELINUX=disabled

การทำเช่นนั้นจะต้องมีการรีบูต


3
เป็นเรื่องที่น่าสนใจที่ฉันได้รับการโหวตโดยขับรถสำหรับคำตอบเดียวกันเมื่อหนึ่งปีครึ่งที่ผ่านมา
octopusgrabbus

7

แม้ว่าการปิดใช้งาน SELinux โดยSELINUX=disabledจะช่วยแก้ปัญหานี้จะไม่แนะนำให้เลือก คุณสามารถเปิดใช้งานผู้ใช้ ftp เพื่อเข้าถึงโฮมไดเร็กตอรี่ของเขาโดยการกำหนดค่า SELinux boolean ftp_home_dirด้วยการรันคำสั่งต่อไปนี้:

setsebool -P ftp_home_dir=1

เครื่องหมายขีดหลังจำเป็นหรือไม่หรือเป็นผลมาจากการจัดรูปแบบอินไลน์และบล็อกของรหัส / คำสั่ง?
Anthon

ไม่ไม่จำเป็นต้องทำ Backticks
suprjami

นี่ควรเป็นคำตอบที่ดีที่สุดในการแก้ปัญหาเพื่อหลีกเลี่ยงการลดระดับความปลอดภัยของระบบทั้งหมดโดยไม่ต้อง SELinux
Tomofumi

ไม่ได้กำหนดบูลีน ftp_home_dir?
Exlord

3

คุณสามารถอนุญาตให้ FTP daemon เข้าถึงไฟล์ทั้งหมดได้อย่างเต็มที่โดยการเรียกใช้

setsebool -P allow_ftpd_full_access 1

2

ฉัน selinux คนพิการโดยทำตามคำแนะนำเหล่านี้ที่นี่ ฉันสามารถเข้าสู่ระบบโดยไม่ใช้ sftp

หากต้องการปิดใช้งานอย่างถาวรฉันจะแก้ไข/etc/selinux/configและตั้งค่า

SELINUX=disabled

หลังจากรีบูตฉันก็สามารถเข้าสู่ระบบได้ตามปกติ


2
การปิดใช้งาน SELinux เป็นขั้นตอนการแก้ไขปัญหาเพื่อพิจารณาว่า SELinux เป็นสาเหตุของปัญหาไม่ใช่วิธีการแก้ปัญหาขั้นสุดท้ายหรือไม่ เมื่อคุณกำหนดสาเหตุ SELinux แล้วคุณควรตรวจสอบการปฏิเสธ AVC ของคุณและพิจารณาว่าคุณต้องการเปลี่ยนบูลีนแบบใดหรือสร้างนโยบายที่กำหนดเองด้วยเครื่องมือ SELinux การปิดใช้งาน SELinux อย่างถาวรไม่ใช่ความคิดที่ดี
suprjami

0

อาจผู้ใช้ไม่มีสิทธิ์ดำเนินการในโฟลเดอร์บ้านของพวกเขา ดำเนินการ:

chmod +x /home/user

หรือ,

chmod 700 /home/user

0

หวังว่านี่จะช่วยได้

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

1
ยินดีต้อนรับสู่เว็บไซต์และขอขอบคุณสำหรับการสนับสนุนของคุณ คุณจะเพิ่มคำอธิบายเพิ่มเติมว่าคำตอบของคุณจะช่วยแก้ปัญหาเดิมได้อย่างไร สิ่งนี้อาจทำให้ผู้อื่นประสบปัญหาคล้ายกันมากขึ้นว่าทำไมพวกเขาถึงมีปัญหานี้ตั้งแต่แรก
ดูแลระบบ

-1

การเรียกใช้setenforce 0เป็นคำตอบอื่นที่แนะนำไม่ได้ผล

คำสั่งต่อไปนี้แก้ไขปัญหา:

chmod -R 755 /home/dbadmin

(ก่อนหน้านี้ไดเรกทอรี / home / dbadmin มีสิทธิ์ 700 รายการ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.