天天看點

vsftp伺服器搭建

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