redhat vsftpd及vsftpd 500 OOPS: cannot change directory錯誤解決
一、以root賬戶登入RedHat ,以下是用原始碼安裝的過程,大家可以下最新的原始碼在官方網站上
[root@redhat ~]# tar -zxvf vsftpd-2.0.5.tar.gz //解壓vsftp source檔案
[root@redhat ~]# cd vsftpd-2.0.5 //進入解壓後的目錄
[@more@][root@redhat vsftpd-2.0.5]# more INSTALL //看看安裝說明。比如要做什麼工作。是個英文文件--------建議大家一定要看啊!安裝說明很詳細的,你要是耐心的看完,就完完全全可以不用看我下面寫的內容啦!o(∩_∩)o...哈哈[root@redhat vsftpd-2.0.5]# useradd nobody //這裡需要加一個nobody使用者。大家可以使用finger nobody檢視下。看是否有這個使用者。用就不需要加了
[root@redhat vsftpd-2.0.5]# mkdir /usr/share/empty //這一步同上。伺服器需要一個empty的空目錄放在/usr/share/下。可以使用ls /usr/share/empty檢視。如果存在就不需要了。這步也可以跳過
如果需要開啟匿名使用者訪問,需要做下面幾步工作
[root@redhat vsftpd-2.0.5]# mkdir /var/ftp / //建立供匿名使用者使用的目錄【ftp就是你以後要匿名登陸的使用者名稱】
[root@redhat vsftpd-2.0.5]# useradd -d /var/ftp ftp //建立ftp使用者並且指定家目錄為/var/ftp,這個步驟一般的系統也有。如果建立提示:user ftp exists(FTP使用者存在)就表示此使用者已經存在。
繼續下一步
[root@redhat vsftpd-2.0.5]# chown root.root /var/ftp //設定/var/ftp,也就是ftp使用者的家目錄屬組和屬主都是root,為了安全,這步還是需要的
[root@redhat vsftpd-2.0.5]# chmod og-w /var/ftp //更改許可權,去掉屬組和其他人的寫許可權
上面這寫工作做完了
二、下面為編譯與安裝過程
[root@redhat vsftpd-2.0.5]# make //編譯二進位制檔案【注意要在安裝系統的時候安裝GCC等開發軟體包呀!我今天就是犯這個錯誤了,害得忙了老半天類.】
[root@redhat vsftpd-2.0.5]# make install //安裝,安裝的時候可以看到安裝的相關檔案。
[root@redhat vsftpd-2.0.5]# cp vsftpd.conf /etc/ //複製配置檔案
[root@redhat vsftpd-2.0.5]# cp RedHat/vsftpd.pam /etc/pam.d/ftp //複製PAM安全驗證檔案此為驗證檔案所在的目錄
[root@redhat vsftpd-2.0.5]# vi /etc/vsftpd.conf
然後按SHIFT+G,跳到行尾,在#ls recurse_enable=YES的下面增加一行
listen=YES
詳細的配置引數會文章最後貼出..
然後:wq儲存退出
[root@redhat vsftpd-2.0.5]# cp vsftpd.conf.5 /usr/local/man/man5
[root@redhat vsftpd-2.0.5]# cp vsftpd.8 /usr/local/man/man8
基本到這裡。所有工作就做完了。但是還要說點東西
預設情況下vsftp是以超級守護程式(xinetd)執行的。
三、啟動方式(兩種方式)
【方法一】[root@redhat vsftpd-2.0.5]# service xinetd restart //重啟超級守護程式就等於啟動了vsftp
【方法二】獨立執行需要修改配置檔案
[root@redhat vsftpd-2.0.5]# vi /etc/vsftpd.conf
然後按,跳到行尾。加上listen=YES.然後:wq儲存退出
這樣就可以使用下面這條語句啟動
[root@redhat vsftpd-2.0.5]# /usr/local/sbin/vsftpd & // &表示後臺啟動vsftp
[root@redhat vsftpd-2.0.5]# echo "/usr/local/sbin/vsftpd &" >> /etc/rc.local //追加到啟動指令碼上,以後啟動時可以直接使用#/etc/rc.local即可
另外、關閉ftp程式用#killall -9 vsftpd命令,檢視命令#netstat -tnl 並用#ftp local的IP 測試登陸
【 推薦大家使用第二種方法.】
四、 配置檔案詳細內容
vsftpd的配置
vsftpd.ftpusers:位於/etc目錄下。它指定了哪些使用者賬戶不能訪問FTP伺服器,例如root等。
vsftpd.user_list:位於/etc目錄下。該檔案裡的使用者賬戶在預設情況下也不能訪問FTP伺服器,僅當vsftpd .conf配置檔案裡啟用userlist_enable=NO選項時才允許訪問。
vsftpd.conf:位於/etc/vsftpd目錄下。來自定義使用者登入控制、使用者許可權控制、超時設定、伺服器功能選項、伺服器效能選項、伺服器響應訊息等FTP伺服器的配置。
(1)使用者登入控制
anonymous_enable=YES,允許匿名使用者登入。
no_anon_password=YES,匿名使用者登入時不需要輸入密碼。
local_enable=YES,允許本地使用者登入。
deny_email_enable=YES,可以建立一個檔案儲存某些匿名電子郵件的黑名單,以防止這些人使用Dos攻擊。
banned_email_file=/etc/vsftpd.banned_emails,當啟用deny_email_enable功能時,所需的電子郵件黑名單儲存路徑(預設為/etc/vsftpd.banned_emails)。
(2)使用者許可權控制
write_enable=YES,開啟全域性上傳許可權。
local_umask=022,本地使用者的上傳檔案的umask設為022(系統預設是077,一般都可以改為022)。
anon_upload_enable=YES,允許匿名使用者具有上傳許可權,很明顯,必須啟用write_enable=YES,才可以使用此項。同時我們還必須建立一個允許ftp使用者可以讀寫的目錄(前面說過,ftp是匿名使用者的對映使用者賬號)。
anon_mkdir_write_enable=YES,允許匿名使用者有建立目錄的權利。
chown_uploads=YES,啟用此項,匿名上傳檔案的屬主使用者將改為別的使用者賬戶,注意,這裡建議不要指定root賬號為匿名上傳檔案的屬主使用者!
chown_username=whoever,當啟用chown_uploads=YES時,所指定的屬主使用者賬號,此處的whoever自然要用合適的使用者賬號來代替。
chroot_list_enable=YES,可以用一個列表限定哪些本地使用者只能在自己目錄下活動,如果chroot_local_user=YES,那麼這個列表裡指定的使用者是不受限制的。
chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,則指定該列表(chroot_local_user)的儲存路徑(預設是/etc/vsftpd.chroot_list)。
nopriv_user=ftpsecure,指定一個安全使用者賬號,讓FTP伺服器用作完全隔離和沒有特權的獨立使用者。這是vsftpd系統推薦選項。
async_abor_enable=YES,強烈建議不要啟用該選項,否則將可能導致出錯!
ascii_upload_enable=YES;ascii_download_enable=YES,預設情況下伺服器會假裝接受ASCⅡ模式請求但實際上是忽略這樣的請求,啟用上述的兩個選項可以讓伺服器真正實現ASCⅡ模式的傳輸。
注意:啟用ascii_download_enable選項會讓惡意遠端使用者們在ASCⅡ模式下用“SIZE/big/file”這樣的指令大量消耗FTP伺服器的I/O資源。
這些ASCⅡ模式的設定選項分成上傳和下載兩個,這樣我們就可以允許ASCⅡ模式的上傳(可以防止上傳指令碼等惡意檔案而導致崩潰),而不會遭受拒絕服務攻擊的危險。
(3)使用者連線和超時選項
idle_session_timeout=600,可以設定預設的空閒超時時間,使用者超過這段時間不動作將被伺服器踢出。
data_connection_timeout=120,設定預設的資料連線超時時間。
(4)伺服器日誌和歡迎資訊
dirmessage_enable=YES,允許為目錄配置顯示資訊,顯示每個目錄下面的message_file檔案的內容。
ftpd_banner=Welcome to blah FTP service,可以自定義FTP使用者登入到伺服器所看到的歡迎資訊。
xferlog_enable=YES,啟用記錄上傳/下載活動日誌功能。
xferlog_file=/var/log/vsftpd.log,可以自定義日誌檔案的儲存路徑和檔名,預設是/var/log/vsftpd.log。
在啟動vsftpd,有時會報錯:
C:>ftp 192.168.0.101
Connected to 192.168.0.101.
220 (vsFTPd 2.0.5)
User (192.168.0.101:(none)): frank
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/frank
Login failed.
ftp> ls
500 OOPS: child died
Connection closed by remote host.
解決方法是:
ref: http://hi.baidu.com/qhdinfo/blog/item/eee71e0e7abc25c97acbe17d.html
在終端輸入命令:
setsebool ftpd_disable_trans 1
service vsftpd restart
就OK了!
後來google.com後才發現這是SELinux的設定命令.
其實 man 一下setsebool也知道了:
NAME
setsebool - set SELinux boolean value
在不熟悉SELnux前,把SELinux關掉也可以的。有時間研究下SELinux。
在想用SELinux但是又不熟悉的情況下可以把SELinux設定成Permissive,表示SELinux規則啟動,但只是把違規的記錄到log中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7490392/viewspace-1026280/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- vsftpdFTP
- vsftpd.conf 配置詳解FTP
- MogDB 安裝解壓錯誤:cannot run bzip2: No such file or directory
- Ubuntu22.04 vsftpdUbuntuFTP
- ubuntu下vsftpd配置UbuntuFTP
- dedecms提示500錯誤解決方法
- Ubuntu Cannot allocate memory 錯誤解決方案Ubuntu
- vsftpd部署(centos7.9)FTPCentOS
- docker搭建vsftpd服務DockerFTP
- Linux中Vsftpd服務的部署及優化LinuxFTP優化
- 【linux】Debian10.0配置vsftpdLinuxFTP
- ubuntu ftp 伺服器搭建及vsftpd.conf配置例項詳解UbuntuFTP伺服器
- GitLab 500 錯誤如何解決?Gitlab
- Linux伺服器---安裝vsftpdLinux伺服器FTP
- FTP伺服器——使用vsftpd搭建FTP伺服器
- vsftpd伺服器配置與使用FTP伺服器
- Mac Iterm2 連結伺服器報:LC_CTYPE: cannot change locale (UTF-8): No such file or directory 解決方案Mac伺服器
- Centos8中使用VSFTPD配置FTPsCentOSFTP
- Hadoop常見錯誤及解決方案Hadoop
- SyntaxError: Non-ASCII character 與 Cannot decode using encoding "ascii" 錯誤解決ErrorASCIIEncoding
- tar (child): bzip2: Cannot exec: No such file or directory 報錯
- ubuntu系統使用vsftpd搭建FTP伺服器。UbuntuFTP伺服器
- mongodb錯誤解決辦法-bash: ./mongod: cannot execute binary file: Exec format errorMongoDBORMError
- 平臺配置及測試錯誤提示及解決方案
- vsftpd多例項多使用者不同許可權FTP
- Ubuntu上ftp的vsftpd.conf檔案的配置UbuntuFTP
- 小白搭建ftp伺服器(vsftpd centos8.2)FTP伺服器CentOS
- iOS路上遇到的錯誤及解決辦法iOS
- Oracle 錯誤總結及問題解決 ORAOracle
- No bean named 'xxx' is defined錯誤,原因及解決方案Bean
- Oracle的TNS-12502 錯誤原因及解決Oracle
- ORA-39006錯誤原因及解決辦法
- Go-Micro客戶端請求報500錯誤的解決方法Go客戶端
- Ocelot錯誤解決
- 排查開啟網站提示500錯誤的解決方法-實用技術網站
- 關於vsftpd的refusing to run with writable root inside chroot()問題FTPIDE
- linux之FTP服務vsftpd和pure-ftpd常用配置LinuxFTP
- Elasticsearch常見的5個錯誤及解決策略Elasticsearch
- 帝國CMS搬家常見錯誤及解決方法