Linux中ftp服務
1.ftp的啟用
環境配置
vim /etc/sysconfig/selinux ##修改配置檔案,將SELINUX改為disabled。然後重啟虛擬機器
yum install vsftpd ##下載服務 systemctl start vsftpd ##啟動服務 systemctl enable vsftpd ##設定服務開機自啟動 firewall-cmd --permanent --add-service=ftp ##設定火牆 firewall-cmd --reload ##重啟
2.ftp的基本資訊
訪問資料埠:21
資料傳輸埠:大於1024的隨機埠
預設釋出目錄:/var/ftp/
訪問方式
lftp 172.25.254.115 ##匿名登陸,預設目錄/var/ftp
lftp 172.25.254.115 -u student ##使用者登入,預設目錄/home/student
配置檔案:
/etc/vsftpd/vsftpd.conf
3.ftp訪問的基本設定
匿名使用者登陸
vim /etc/vsftpd/vsftpd.conf ##修改配置檔案 anonymous_enable=YES|NO ##匿名使用者是否可以登陸(YES可以登陸,NO不能登陸) 注意:每次修改完配置檔案後都需重啟服務
本地使用者登陸
vim /etc/vsftpd/vsftpd.conf
local_enable=YES|NO ##本地使用者是否可以登陸(YES可以登陸,NO不能)
本地使用者可寫
vim /etc/vsftpd/vsftpd.conf
write_enable=YES|NO ##本地使用者是否可寫
匿名使用者上傳
chmod 775 /var/ftp/pub chgrp ftp /var/ftp/pub ##上傳之前需更改pub目錄的許可權和所在組 vim /etc/vsftpd/vsftpd.conf anon_upload_enable=YES ##匿名使用者可以上傳
匿名使用者下載
vim /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO
匿名使用者建立目錄,刪除和重新命名
vim /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
匿名使用者家目錄修改
vim /etc/vsftpd/vsftpd.conf
anon_root=/westos
匿名使用者上傳檔案預設許可權修改
vim /etc/vsftpd/vsftpd.conf
anon_umask=022
最大上傳速率
dd if=/dev/zero of=file bs=1M count=1000 ##建立一個1G 的檔案
vim /etc/vsftpd/vsftpd.conf
anon_max_rate=102400(單位:位元組byte)
可以看出在不限制上傳速度時,上傳速度大概60M,當限制最大上傳速度為100K了之後,速度大概為100K左右
最大連線數
max_clients=1 ##最大連線數為1
匿名使用者使用的使用者身份修改
chown_uploads=YES
chown_username=student
本地使用者家目錄修改
local_root=/dir
本地使用者上傳檔案許可權
local_umask=077 ##本地使用者上傳檔案許可權為600
限制本地使用者瀏覽/目錄
當沒限制時,本地使用者可以切到/看到根目錄下的所有東西
所有使用者被鎖定到自己家目錄中
chroot_local_user=YES
chmod u-w /home/* ##減小家目錄許可權,不然會因許可權過大報錯
本地使用者訪問黑名單建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot.list
由於chroot.list檔案不存在,所以要手動建立此檔案。並在檔案中寫入使用者
本地使用者訪問白名單建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot.list
當chroot_local_user改為YES時,此時寫在/etc/vsftpd/chroot_list下的為白名單,仍然將student寫入此檔案中
使用者登陸黑名單設定
vim /etc/vsftpd/ftpusers ##使用者黑名單
vim /etc/vsftpd/user_list ##使用者臨時黑名單
使用者登陸白名單設定
vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO
/etc/vsftpd/user_list ##引數設定,此檔案變成使用者白名單,只在名單中出現的使用者可以登陸ftp
4.ftp虛擬使用者的設定
建立虛擬帳號身份
vim /etc/vsftpd/westosfile ##檔名稱任意
user1 ##使用者帳號
123 ##密碼
user2 ##使用者帳號
123 ##密碼
user3 ##使用者帳號
123 ##密碼
db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db ##加密檔案
vim /etc/pam.d/westos ##檔名稱任意
account required pam_userdb.so db=/etc/vsftpd/westosfile
auth required pam_userdb.so db=/etc/vsftpd/westosfile
vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
pam_service_name=westos
guest_username=student ##用student身份登陸
當使用虛擬賬戶登陸時發現進去後是student家目錄
虛擬帳號家目錄獨立設定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER
user_sub_token=$USER
建立虛擬使用者家目錄
mkdir /ftphome/user1/user1dir -p
mkdir /ftphome/user2/user2dir -p
mkdir /ftphome/user3/user3dir -p
虛擬帳號配置獨立
chgrp ftp /ftphome/ -R
chmod 775 /ftphome/user1/user1dir
chmod 775 /ftphome/user2/user2dir
mkdir -p /etc/vsftpd/userconf ##名稱任意
vim /etc/vsftpd/vsftpd.conf
在配置檔案中寫入 user_config_dir=/etc/vsftpd/userconf
注意此處userconf需與上一步所建立的目錄名稱一致
vim /etc/vdftpd/userconf/user1
在此檔案中設定配置檔案中的所有引數,此檔案的優先順序高
此時user1具有上傳及刪除功能
5.ftp常見報錯
530 報錯表示認證失敗
550 服務本身不允許這樣做
500 許可權過大
553 伺服器上的檔案系統不允許