centos下面安裝vsftp
1:安裝 vsftp
使用chkconfig --list來查看是否裝有vsftpd服務;
使用yum命令直接安裝:yum -y install vsftpd
然後為它創建日志文件:touch /var/log/vsftpd.log
2: 啟動與配置自啟動
使用chkconfig --list來查看vsftpd服務啟動項情況;
如果看到的是如下顯示的結果:
vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
服務全部都是off的,注意這裡的off表示的是服務器啟動的時候是否會自啟動服務,我們使用如下命令來配置其自啟動:
chkconfig --level 2345 vsftpd on #2345對應的是上面對應的0-6項
查看與管理ftp服務:
啟動ftp服務:service vsftpd start
查看ftp服務狀態:service vsftpd status
重啟ftp服務:service vsftpd restart
關閉ftp服務:service vsftpd stop
3. 配置vsftp服務
編輯/etc/vsftpd/vsftpd.conf文件,配置vsftp服務:
#vi /etc/vsftpd/vsftpd.conf
3.1 編輯修改如下項目:
anonymous_enable=NO #設定不允許匿名訪問
local_enable=YES #設定本地用戶可以訪問。注:如使用虛擬宿主用戶,在該項目設定為NO的情況下所有虛擬用戶將無法訪問。
chroot_list_enable=YES #使用戶不能離開主目錄
xferlog_file=/var/log/vsftpd.log #設定vsftpd的服務日志保存路徑。注意,該文件默認不存在。必須要手動touch出來
ascii_upload_enable=YES #允許使用ASCII模式上傳
ascii_download_enable=YES #設定支持ASCII模式的上傳和下載功能。
pam_service_name=vsftpd #PAM認證文件名。PAM將根據/etc/pam.d/vsftpd進行認證
以下這些是關於Vsftpd虛擬用戶支持的重要CentOS FTP服務配置項目。默認vsftpd.conf中不包含這些設定項目,需要自己手動添加RHEL/CentOS FTP服務配置。
guest_enable=YES #設定啟用虛擬用戶功能。
guest_username=ftp #指定虛擬用戶的宿主用戶。-RHEL/CentOS中已經有內置的ftp用戶了
user_config_dir=/etc/vsftpd/vuser_conf #設定虛擬用戶個人vsftp的RHEL/CentOS FTP服務文件存放路徑。存放虛擬用戶個性的CentOS FTP服務文件(配置文件名=虛擬用戶名)
3.2 創建chroot list,將ftp用戶加入其中:
touch /etc/vsftpd/chroot_list
echo ftp >> /etc/vsftpd/chroot_list
3.3 進行認證:
首先,安裝Berkeley DB工具,很多人找不到db_load的問題就是沒有安裝這個包。
yum install db4 db4-utils
然後,創建用戶密碼文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用戶名,偶行是密碼
test1
pwd1
接著,.生成虛擬用戶認證的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
隨後,編輯認證文件/etc/pam.d/vsftpd,全部注釋掉原來語句
再增加以下兩句
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
最後,創建虛擬用戶個性RHEL/CentOS FTP服務文件
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/test1
內容如下:
local_root=/opt/var/ftp #虛擬用戶的根目錄(根據實際修改)
write_enable=YES #可寫
anon_umask=022 #掩碼
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
4. 為目錄附權限並重啟動vsftp服務:
mkdir /opt/var/ftp
chmod 777 /opt/var/ftp ******** 這個很重要 ,如果不設置,有可能報530錯誤,test1用戶上傳的根目錄就是這個文件
service vsftpd restart
5. 常見問題:
5.1 553 Could not create file
一般都是SELinux的問題,設置SELinux的一個值,重啟服務器即可。
setsebool -P ftpd_disable_trans 1
service vsftpd restart
也有可能是上面的紅色字,設置有問題
5.2 500 OOPS: bad bool value in config file for: write_enable
注意你的CentOS FTP服務文件中保證每一行最後沒有任何空格,一般出錯就是在多余的空格上。
5.3 虛擬用戶上傳後默認權限為:600,用戶無法下載文件
在配置文件中添加或修改anon_umask項的值。如anon_umask=022或000
這樣在windows的上就可以使用ftp的客戶端去連接了,
1. virtual_use_local_privs參數
當virtual_use_local_privs=YES時,虛擬用戶和本地用戶有相同的權限;
當virtual_use_local_privs=NO時,虛擬用戶和匿名用戶有相同的權限,默認是NO。
當virtual_use_local_privs=YES,write_enable=YES時,虛擬用戶具有寫權限(上傳、下載、刪除、重命名)。
當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES時,虛擬用戶不能浏覽目錄,只能上傳文件,無其他權限。
當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO時,虛擬用戶只能下載文件,無其他權限。
當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES時,虛擬用戶只能上傳和下載文件,無其他權限。
當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES時,虛擬用戶只能下載文件和創建文件夾,無其他權限。
當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES時,虛擬用戶只能下載、刪除和重命名文件,無其他權限。