【reference】
http://www.server110.com/vsftpd/201404/10353.html
【安裝vsftp】
yum -y install vsftpd
【開啓配置】
一定要想好需求-建立合理的帳號-可以多建立幾個。
a.web用戶,本地目錄是/var/www/,可以上傳下載,也可以新建文件夾,可以刪除文件和文件夾
b.download用戶,本地目錄是/home/ftp,只能瀏覽和下載
c.admin用戶,本地目錄是/home/ftp,可以上傳下載,可以新建文件夾,可以刪除和更改文件和文件名
針對ftp裏面的目錄,運維專區(admin),公司全體(hello)-dev專區(dev),不同帳號不同的工作目錄。
如上的所有帳號都不能登陸系統,並且用ftp連接時鎖定在自己的家目錄(每個用戶有自己的家目錄)不能進入系統文件夾
基本思路:用虛擬用戶訪問FTP,爲每個用戶建立一個獨立的配置文件,使不同的虛擬用戶具有不同的主目錄,不同的權限。
基本流程:ftp用戶訪問-pam配置文件(由vsftpd.conf中pam_service_name指定)-pam論證-區別用戶讀取配置文件(由vsftpd.conf中user_config_dir指定配置文件路徑,文件名即用戶名)
【具體配置】
#建立虛擬配置用戶
useradd -d /home/ftp virtual
#改變屬主和屬性
chown virtual /home/ftp
chmod 700 /home/ftp
#改變web發佈目錄所在目錄(/var/www)的屬性和它的宿主
chown virtual /var/www
chmod 775 /var/www
#創建ftp用戶配置文件目錄/etc/vsftpd/user_conf
mkdir /etc/vsftpd/user_conf
#在/etc/vsftpd/user_conf目錄中創建以用戶名命名的配置文件web,download,admin,hello,dev,
admin內容如下:
local_root=/home/ftp
anon_world_readable_only=NO
# (寫權限)
write_enable=YES
#(新建目錄權限)
anon_mkdir_write_enable=YES
#(上傳權限)
anon_upload_enable=YES
#(刪除/重命名的權限)
anon_other_write_enable=YES
hello內容如下:
# (當然,你高興也可以設置成其它,但要注意virtual用戶對此目錄的權限)
local_root=/home/ftp/公司全體
# (使download用戶的能下載,也只能下載;寫成YES,將不能列出文件和目錄)
anon_world_readable_only=NO
dev內容如下:
# (當然,你高興也可以設置成其它,但要注意virtual用戶對此目錄的權限)
local_root=/home/ftp/公司全體/技術部專區
anon_world_readable_only=NO
# (寫權限)
write_enable=YES
#(新建目錄權限)
anon_mkdir_write_enable=YES
#(上傳權限)
anon_upload_enable=YES
#(刪除/重命名的權限)
anon_other_write_enable=YES
其餘略
在/etc/vsftpd.conf加入或者更改以下配置語句:
#(當然你也可以設成YES,同時允許匿名用戶登陸)
anonymous_enable=NO
#(必須置YES,因爲虛擬用戶是映射到virtual這個本地用戶來訪問的)
local_enable=YES
#(啓用虛擬用戶)
guest_enable=YES
#(將虛擬用戶映射爲本地virtual用戶)
guest_username=virtual
#(指定PAM配置文件爲ftp.vu)
pam_service_name=ftp.vu
#(指定不同虛擬用戶配置文件的存放路徑)
user_config_dir=/etc/vsftpd/user_conf
【從這裏可以重新新建用戶】
建立一個列表logins.txt
admin
hello@123
hello
hello@123
dev
hello@123
......
yum -y install libdb3-util
#建立訪問者數據文件
db3_load –T –t hash –f /tmp/logins.txt /etc/vsftpd/vsftpd_login.db
#在/etc/pam.d/中創建文件ftp.vu, 添加如下內容:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
local_root=/data/repository/snapshot
anon_umask=022
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
download_enable=NO