vsftpd+pam=虛拟使用者登入FTP伺服器
1.配置匿名使用者登入
關閉firewalld和selinux
yum install -y vsftpd
編輯主配置檔案
vim /etc/vsftpd/
anonymous_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES #容許匿名使用者上傳檔案
anon_mkdir_write_enable=YES #容許匿名使用者建立目錄
anon_other_write_enable=YES #容許匿名使用者除了建立和上傳外的其他權限
cd /var/ftp
mkdir upload
chmod 777 upload
systemctl restart vsftpd
用戶端使用ftp://192.168.1.10通路
2.配置虛拟使用者登入(與1獨立)
2.1建立虛拟使用者賬号和密碼
vim /tmp/logins.txt
test1
pw1
test2
pw2
2.2建立虛拟使用者資料庫
db_load -T -t hash -f /tmp/logins.txt /etc/vsftpd_login.db
file /etc/vsftpd_login.db
chmod 600 /etc/vsftpd_login.db
2.3建立PAM檔案,告訴系統你要使用自己的資料庫
vim /etc/pam.d/vsftpd(注釋掉其它使下面的生效)
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd_login
2.4為虛拟使用者建立檔案夾并授權
useradd -d /ftp/ -s /sbin/nologin virtual
chown -R virtual.virtual /ftp/
2.5編輯主配置文檔
vim /etc/vsftpd/vsftpd.conf (修改以下)
anonymous_enable=NO
local_enable=YES
connect_from_port_20=YES
listen=YES
listen_port=21
tcp_wrappers=YES
guest_enable=YES (#允許虛拟使用者登入)
guest_username=virtual(#指定虛拟使用者映射到virtual系統使用者)
user_config_dir=/etc/vsftpd/user_config_dir(#指定虛拟使用者的配置檔案位置)
pam_service_name=vsftpd
allow_writeable_chroot=YES(沒加這條可能會沒寫權限)
2.6建立使用者配置文檔
mkdir /etc/vsftpd/user_config_dir
echo "anon_world_readable_only=NO">/etc/vsftpd/user_config_dir/test1
#給使用者test1和test2賦予隻讀權限
echo "write_enable=YES" >> /etc/vsftpd/user_config_dir/test1
#給使用者test1和test2賦予寫入權限
echo "anon_upload_enable=YES" >> /etc/vsftpd/user_config_dir/test1
#給使用者test1和test2賦予上傳權限
echo "anon_other_write_enable=YES" >> /etc/vsftpd/user_config_dir/test1
#給使用者test1和test2賦予更改和删除權限
echo "local_root=/ftp/test1" >> /etc/vsftpd/user_config_dir/test1
#給使用者test1和test2賦予通路目錄權限
echo "anon_mkdir_write_enable=YES" >> /etc/vsftpd/user_config_dir/test1
#給使用者test1和test2賦予建立目錄權限
mkdir /ftp/test1
touch test
2.7開啟服務
systemctl start vsftpd
注:若開啟selinux,需如下設定
setsebool –P ftp_home_dir on
setsebool -P ftpd_anon_write on
semanage fcontext -a -t public_content_rw_t "/ftp/test1(/.*)?"
restorecon -R -v /ftp/test1
本文轉自 fxl風 51CTO部落格,原文連結:http://blog.51cto.com/fengxiaoli/1944917