ftp服務器搭建(二)
1.已經安裝好了vsftpd 進入到根目錄下的/etc目錄 ls查看一下
2.拷貝一下上面的兩個配置文件 我拷貝到了我新建的目錄中了
3.查看現在的網絡連接方式——我的是-net方式 當然其他方式也行 但有些區別 這個我打算再另寫一篇有關計算機網絡方面的我的看法 好了 再繼續看這個ftp 先保證本機與虛擬機的網能ping的通 如圖:
正好在一個網段內 能ping通
4.接下來就開始配置吧
在/etc的目錄下vim vsftpd.conf
先來說明一下這些參數的作用
listen=YES/NO(YES)
設置vsftpd服務器是否以standalone模式運行。以standalone模式運行是一種較好的方式,此時listen必須設置為YES,此為默?認值。建議不要更改,有很多與服務器運行相關的配置命令,需要在此模式下才有效。若設置為NO,則vsftpd不是以獨立的服務運行,要受到xinetd?服務的管控,功能上會受到限制。
listen_ipv6=YES/NO (YES)
設置傳輸協議
anonymous_enable=YES/NO
設置是否為匿名登錄 YES為匿名登錄
anon_upload_enable=YES
設置匿名用戶是否能上傳 YES為匿名能上傳
anon_mkdir_write_enable=YES
匿名用戶是否能創建目錄 YES為匿名能創建
anon_other_write_enable=YES
修改文件名和刪除文件 YES為匿名能刪除
local_enable=YES
是否允許本地用戶登錄
local_umask=022
umask 默認755 這個是用戶權限設置 即:777-022=755
write_enable=YES 是否本地用戶有寫權限 YES為本地有寫權限
chroot_local_user=YES
本地用戶禁錮在宿主目錄中
chroot_list_enable=YES
是否將系統用戶限止在自己的home目錄下
chroot_list_file=/etc/vsftpd.chroot_list
列出的是不chroot的用戶的列表
chown_upload=YES
是否改變上傳文件的屬主
chown_username=username
如果是需要輸入一個系統用戶名
userlist_enable=YES
userlist_deny=NO
ftpd_banner=Welcome to chenlf FTP service.
設置歡迎信息
dirmessage_enable=YES
是否顯示目錄說明文件, 需要收工創建.message文件
message_file=
設置訪問一個目錄時獲得的目錄信息文件的文件名,默認是.message
xferlog_enable=YES
是否記錄ftp傳輸過程
xferlog_file=/var/log/vsftpd.log
ftp傳輸日誌的路徑和名字
connect_from_port_20=YES
是否確信端口傳輸來自20(ftp-data)
nopriv_user=ftpsecure
運行vsftpd需要的非特權系統用戶默認是nobody
async_abor_enable=YES
是否允許運行特殊的ftp命令async ABOR.
5.我暫時的配置
listen=NO 一開始改為YES 運行服務器自行退出 error 不清楚什麽原因
userlist等參數沒加 本地用戶hello沒加入到vsftpd.chroot_list中
其他基本沒變
測試我有沒有讀寫權限
我能進入到上一層目錄 即:我能進入到父目錄下 因為chroot沒加入這個名單
只能在/home家目錄下有創建讀寫權限
如果把hello寫入到chroot中 就登不上了
我不清楚為什麽chroot_local_user=NO and chroot_list_enable=NO 或者chroot_local_user=YES and chroot_list_enable=YES 則chroot_list_file的目錄的文件的用戶照樣能返回上一層目錄 而這兩個參數都不一樣時 則遠程主機關閉連接 不清楚為什麽 按道理說這兩個參數第一個是是否啟用root 第二個參數是root_file的名單是否能返回上一層目錄的 可實現的結果卻不一樣
我現在把匿名參數改為了YES 增加了一個匿名訪問參數anon_root=/var 如圖:
關於userlist=YES 表示在userlist_file=/目錄文件的名單不能訪問ftp服務器 NO表示允許訪問
userlist_deny=NO
userlist_file=/
註意:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
500 OOPS: priv_sock_get_cmd
當出現這個時,說明chroot列表裏沒有這個用戶名 同時將訪問的家目錄改為沒有寫的權限目錄
我先回答上面的 因為我安裝的是最新版本的 可能有些變化
chroot_local_user=YES chroot_list_enable=NO 然後root_list列表添加hello用戶 並且在/home改變hello的權限變為r-x就可以了 這樣訪問不了父目錄
至於有沒有其他原因 目前暫時不清楚 歡迎大家來評論補充
我再補充一下:
之前local_root=/var/CPPC
發現登陸不了 總是遠程機子關閉連接
原因是local_root=/var/CPPC的訪問目錄的讀寫權限問題 將訪問目錄的讀寫權限改為沒有“寫”的權限就行了
6.現在我們創建一個虛擬用戶 CPPCPP 密碼為CPPCPP
useradd -s /bin/sh CPPCPP
passwd:
chmod 755 /var/CPPC
chown CPPCPP:CCC /var/CPPC
usermod -g CCC CPPCPP
usermod -g CCC hello
或者 usermod -G CCC hello
重啟vsftpd服務
總結問題:
1.之前為什麽新建的用戶不能登陸的原因在這裏
之前不能登陸的原因是因為CPPCPP的密碼為! 禁用了
在/etc/shadow /etc/passwd可以看到
解禁 usermod -U CPPCPP 或者passwd -u CPPCPP 或者 直接passwd CPPCPP 輸入密碼就行了
但是現在遇到了另一個問題:
C:\Users\CPP>ftp 192.168.93.149
連接到 192.168.93.149。
220 Welcome to blah FTP service.
200 Always in UTF8 mode.
用戶(192.168.93.149:(none)): CPPCPP
331 Please specify the password.
密碼:
500 OOPS: cannot change directory:/home/CPPCPP
500 OOPS: priv_sock_get_cmd
遠程主機關閉連接。
我在網上找了一下:有需要setsebool -P ftpd_disable_trans 1 但是我感覺不太對 我沒有安裝這個selinux 怎麽會有這個問題呢?後來我在/home創建這個用戶CPPCPP 發現沒有這個問題了
現在又遇到一個問題了:
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
具體解決方法:
在vsftpd.conf配置文件添加這一項allow_writeable_chroot=YES
還是需要感謝百度 Google 博客園和博客們的總結分享 我這裏做一下我遇到的問題的總結和心得 O(∩_∩)O哈哈~
ftp服務器搭建(二)