Vsftpd को सही करने के लिए क्या सेटिंग्स हैं "500 OOPS: निर्देशिका नहीं बदल सकते हैं" त्रुटि?


14

मेरा प्रश्न यह है कि मुझे अपने vsftpd सिस्टम में लॉग इन करने की अनुमति देने के लिए मुझे कौन सी सेटिंग्स बदलने और / या चलाने की आवश्यकता है?

मुझे यह त्रुटि मिल रही है, जब मैं sftp के बजाय ftp का उपयोग करके लॉगिन करता हूं:

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 तक पहुंच को बदलने की कोशिश करें, यह मेरे लिए काम करता है।

यदि आपके पास अक्षम सेलिनक्स है तब भी समस्या तब होती है, तो कृपया अपनी निर्देशिका की अनुमतियों का पुन: परीक्षण करें। क्या आपके ftp उपयोगकर्ता के पास वास्तव में उस फ़ोल्डर में अधिकार हैं? या उस फ़ोल्डर के माता-पिता पर कोई सेटगिट बिट सेट है? यदि आप एक नया फ़ोल्डर बनाने का प्रयास करते हैं, तो पैरेंट फ़ोल्डर में एक बिट थोड़ा समस्या पैदा कर सकता है।
चाचाई माओ

जवाबों:


10

इस एक कमांड को चलाएं, किसी भी सेवा और सर्वर को पुनरारंभ करने की आवश्यकता नहीं है:

# setenforce 0

SELinux स्थिति की जांच करने के लिए:

# getenforce

या

शामिल करने के लिए फ़ाइल /etc/sysconfig/selinuxको संपादित करें

SELINUX=disabled

ऐसा करने से रिबूट की आवश्यकता होगी।


3
यह दिलचस्प है कि मुझे डेढ़ साल पहले एक ही जवाब के लिए एक ड्राइव-डाउन वोट मिला।
ऑक्टोपसग्राबस

7

हालांकि SELinux को अक्षम SELINUX=disabledकरने से समस्या हल हो जाएगी यह उचित नहीं होगा। आप ftp_home_dirनिम्न कमांड चलाकर SELinux बूलियन मान को कॉन्फ़िगर करके अपने होम डायरेक्टरी तक पहुंचने के लिए ftp उपयोगकर्ता को सक्षम कर सकते हैं :

setsebool -P ftp_home_dir=1

क्या बैक टिक्स आवश्यक हैं, या कोड / कमांड के इनलाइन और ब्लॉक फॉर्मेटिंग के परिणाम हैं?
एंथन

नहीं, बैकटिक्स आवश्यक नहीं हैं।
सुपरजामी

यह समस्या को हल करने के लिए सबसे अच्छा उत्तर होना चाहिए, पूरे सिस्टम के सुरक्षा स्तर को SELinux के बिना कम करने से बचने के लिए।
टॉमोफुमी

बूलियन ftp_home_dir परिभाषित नहीं है ??
एक्सलॉर्ड

3

आप हमेशा एफ़टीपी डेमॉन को रन करके सभी फ़ाइलों तक पूर्ण पहुँच की अनुमति दे सकते हैं

setsebool -P allow_ftpd_full_access 1

2

मैंने यहाँ इन निर्देशों का पालन ​​करते हुए सेलिनक्स को निष्क्रिय कर दिया । मैं sftp का उपयोग नहीं करने में लॉग इन करने में सक्षम था।

स्थायी रूप से अक्षम करने के लिए, मैंने संपादित किया /etc/selinux/configऔर सेट किया

SELINUX=disabled

रिबूट के बाद, मैं सामान्य रूप से लॉग इन करने में सक्षम था।


2
SELinux को निष्क्रिय करना यह निर्धारित करने के लिए एक समस्या निवारण कदम है कि SELinux समस्या का कारण है, अंतिम समाधान नहीं। एक बार जब आप निर्धारित कर लेते हैं कि SELinux का कारण है, तो आपको अपने AVC इनकारों पर गौर करना चाहिए और निर्धारित करना चाहिए कि SELinux टूल के साथ आपको कौन सी बूलियन बदलने या कस्टम नीति बनाने की आवश्यकता है। SELinux को स्थायी रूप से अक्षम करना एक अच्छा विचार नहीं है।
सुपरजामी

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

(पूर्व में / होम / डबडमिन डायरेक्टरी में 700 अनुमतियां थीं।)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.