centos7搭建ftp服務器
應用場景 本地windows作爲客戶端,虛擬機CentOS7作爲服務器端,搭建FTP服務器,本地訪問虛擬機實現文件的上傳下載。
1.安裝vsftpd服務#
1、安裝vsftpd: yum install vsftpd -y
2、啓動vsftpd: systemctl start vsftpd
3、設置開機啓動:systemctl enable vsftpd
2.關閉防火牆#
在虛擬機上使用沒必要一個一個端口放行,直接關閉防火牆,一勞永逸
systemctl stop firewalld #停止防火牆運行
systemctl disable firewalld #禁止開機啓動
3.添加訪問用戶#
創建的FTP目錄如下:
mkdir -p /data/ftp
useradd -d /data/ftp -s /sbin/nologin ftpuser #/data/ftp爲ftp文件目錄 可自定義 ftpuser 爲添加的用戶名
echo "mima2020" | passwd ftpuser --stdin #設置用戶密碼,執行命令
設置主目錄(更改登錄時看到的目錄,看個人需要更改,如果第4步已設置好,此步可忽略)
usermod -d /data/ftp ftpuser
FTP目錄/data/ftp 並給他設置爲所有者,並賦予755的權限
chown -R ftpuser /data/ftp
chmod 755 -R /data/ftp
4.配置ftp相關內容#
[root@localhost 20190425]# getsebool -a | grep ftp
ftp_home_dir --> on
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> on
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off
#修改ftp_home_dir和sftpd_full_access狀態,可通過一下命令執行
setsebool -P allow_ftpd_full_access on #允許ftp訪問外網
setsebool -P ftp_home_dir on #允許ftp訪問home
5.配置用戶權限#
到這裏已經可以使用訪問FTP了,我們也可以自定義修改ftp相關配置
#執行vim /etc/vsftpd/vsftpd.conf 查看
anonymous_enable=YES #允匿名訪問
local_enable=YES #允許本地用戶訪問
anon_root=/data/ftp #使用匿名登入時,所登入的目錄
local_root=/data/ftp #設置本地用戶的登錄目錄
write_enable=YES #允許本地用戶寫入
local_umask=022 #匿名用戶的掩碼
anon_upload_enable=YES #打開匿名用戶的上傳權限
anon_mkdir_write_enable=YES #允許匿名登入者有新增目錄的權限只有在write_enable=YES時, 此項纔有效.
dirmessage_enable=YES
xferlog_enable=YES #啓用日誌
connect_from_port_20=YES
chown_uploads=YES
chown_username=ftpuser
#xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
chroot_local_user=YES #允許本地賬戶登錄
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #chroot_list 這個文件不存在,就要自己手動創建:/tmp/sms_file/*
allow_writeable_chroot=YES
#ls_recurse_enable=YES
listen=YES #開啓IPV4監聽
listen_ipv6=NO #關閉IPV6監聽
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
我只對匿名訪問,允許訪問做了更改,anonymous_enable=NO、allow_writeable_chroot=YES
現在可以在在windows資源管理器或者瀏覽器,輸入ftp://IP PORT 進行訪問
也可以在命令行訪問
登陸成功。
6.常用命令#
下載文件可以通過命令行執行
pwd #打印當前目錄
ls #查看文件
lcd #設定本地下載目錄
get filename #文件下載
mget * #文件批量下載
put filename #文件上傳
mput * #批量上傳
到此我們的ftp服務器搭建就結束了。
1.1 輸入ftp://IP地址,可看到ftp下的目錄(pub爲系統預設的)
yum -y install ftp
2.2、使用anonymous登陸,無需密碼
ftp 174.25.0.206
ftp://ftpuser:[email protected]
================================================================================
Vsftpd權限等配置正確,報500,550解決方法
原創smahorse 發佈於2013-01-07 18:01:16 閱讀數 6059 收藏
展開
本人在配置完VSFTPD,使用的過程中遇到了500 cannot create file 的報錯
查了很多解答,都說是權限的問題
我的FTP用戶爲 ftpuser
我爲他建立了一個根目錄 /home/ftp 並給他設置爲所有者,並賦予755的權限
chown -R ftpuser /home/ftp
chmod 755 -R /home/ftp
所以我肯定不是權限的問題
後來我用ROOT用戶登錄FTP 又發現有550的報錯,後來查550 發現可能是selinux啓用的原因,關掉後就可以解決問題。具體如下:
vsftpd正常設置
但登陸後不能創建,也不能刪除提示550錯誤
解決辦法可以關掉selinux=disable
[root@host]# vi /etc/selinux/config
----------------------------------------------------------------------------------
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled
#把這裏改成disable
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
-------------------------------------------------------------------------------------
如果在想不重啓系統的情況下關掉SELINUX,可以輸入命令:
setenforce 0