Vsftp安裝及配置虛擬用戶linux
採用yum安裝sql
[root@VM_64_122_centos vsftpd]# yum installvsftpd
安裝完成之後vsftpd的默認配置文件在/etc/vsftpd數據庫
1,建立虛擬用戶文本文件,添加虛擬用戶和密碼centos
[root@VM_64_122_centos vsftpd]# vivuser.txt
奇數行是用戶名,偶數是密碼。安全
好比:bash
admin 123!@# yunying yunying sheji sheji chanpin chanpin
2,生成虛擬數據庫文件服務器
db_load默認沒有安裝,yum installdb4-utils db4-devel db4安裝才能使用。網絡
[root@VM_64_122_centos vsftpd]# yum installdb4-utils db4-devel db4
執行如下命令生成虛擬數據庫文件ide
[root@VM_64_122_centos vsftpd]# db_load -T-t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
3,配置PAM文件,目的是對客戶端進行驗證。批註全部內容,後添加:ui
[root@VM_64_122_centos vsftpd]# vi/etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vuser account required pam_userdb.so db=/etc/vsftpd/vuser
注意:不能寫成db=/etc/vsftpd/vuser.db
4,修改虛擬數據庫文件vuser.db的權限爲 700
[root@VM_64_122_centos vsftpd]# chmod 700vuser.db
5,增長一個系統用戶vuser ,使用它來對應全部虛擬用戶,虛擬用戶使用系統用戶來訪問ftp服務器。
useradd vuser mkdir /var/ftp/vuser chown vuser.vuser /var/ftp/vuser
6,修改vsftpd.conf配置文件,使虛擬用戶能夠訪問vsftpd服務器,增長如下參數
pam_service_name=vsftpd ####使用PAM驗證 guest_enable=YES ####啓用虛擬用戶 ####激活虛擬帳戶 guest_username=vuser ####把虛擬帳戶綁定爲系統帳戶vuser user_config_dir=/etc/vsftpd/vsftpd_user_conf ####虛擬用戶配置文件目錄
1,創建vsftpd_user_conf配置文件目錄
mkdir /etc/vsftpd/vsftpd_user_conf
2,設置虛擬用戶配置文件,與虛擬帳戶同名。
[root@VM_64_122_centos vsftpd]# vi/etc/vsftpd/vsftpd_user_conf/admin
3,編輯虛擬帳戶admin的配置文件admin,設置相應的權限。添加如下內容
anon_world_readable_only=NO ###瀏覽FTP目錄和下載 anon_upload_enable=YES ###容許上傳 anon_mkdir_write_enable=YES ###容許創建和刪除目錄 anon_other_write_enable=YES ###容許更名和刪除文件 local_root=/var/ftp/vuser ###指定虛擬用戶在系統用戶下面的路徑,限制虛擬用戶的家目錄,虛擬用戶登陸後的主目錄。
4,從新啓動ftp服務
[root@VM_64_122_centos vsftpd]# servicevsftpd restart
SELinux 全稱 SecurityEnhanced Linux (安全強化 Linux),是 MAC (Mandatory Access Control,強制訪問控制系統)的一個實現,目的在於明確的指明某個進程能夠訪問哪些資源(文件、網絡端口等)。
SElinux就是指明進程能訪問那些資源,若是其訪問了非指明的資源,SElinux就會阻止他,並告訴這個程序,你沒有權限,不能讓你訪問。
因此須要修改SELinux的權限訪問設置,否則鏈接ftp會出現一些異常報錯。好比:
500 OOPS: cannot change directory:/home/*******
553 could not create file
查看ftp相關選項
sestatus-b | grep ftpd
下面是經常使用的布爾變量:
allow_ftpd_anon_write:關閉這個布爾變量會阻止 vsftpd 讀取 public_content_rw_t 類型的文件和目錄。若是容許用戶經過 FTP 上傳文件。必須開放這個布爾變量。
allow_ftpd_full_access:當開放這個布爾變量時只有Linux(DAC)的權限來控制訪問,經過驗證的用戶能夠讀取和寫入標記爲 public_content_t 或 public_content_rw_t 類型的文件。
allow_ftpd_use_cif:當開放這個布爾變量時vsftpd 容許 cifs_t 類型的文件和目錄,所以這個布爾變量啓用,可讓你的 FTP 服務器可使用 Samba 文件系統。
allow_ftpd_use_nfsvsftpd:的當開放這個布爾變量時 vsftpd 容許 nfs_t 類型的文件和目錄,所以這個布爾變量啓用,可讓你的 FTP 服務器可使用 NFS 文件系統。
ftp_home_dir:當開放這個布爾變量時認證用戶能夠讀寫本身的主目錄中的文件。
ftpd_connect_db:當開放這個布爾變量時容許vsftpd 鏈接數據庫。
httpd_enable_ftp_server:當開放這個布爾變量時允許的 httpd 做爲 FTP 服務器,而且監聽 FTP 端口。
tftp_anon_write:當開放這個布爾變量時容許TFTP 訪問一個公共的目錄
啓用如下選項:
setsebool-P ftp_home_dir 1 setsebool-P allow_ftpd_full_access 1