centos ftp 權限控制比較嚴格 手動配置非常麻煩,搞了一鍵腳本,方便大家快速配置
1.創建sh腳本文件
sudo vim /root/install_vsftpd.sh
2.貼入以下內容
#!/bin/bash #此腳本目前只是為了方便centos7下安裝vsftp,其他版本后期集成。 #ftp數據存放目錄 # by liwentong 20191219 ftp_data=/home/ftp chcek_friewalld(){ echo "開始檢查防火牆設置" systemctl status firewalld |grep runing & >/dev/null if [ $? -ne 0 ] then firewall-cmd --add-port=21/tcp --zone=public --permanent firewall-cmd --add-service=ftp firewall-cmd --reload fi if [ $? -eq 0 ] then echo "防火牆開啟成功" fi useradd -s /sbin/nologin ftp } #搭建ftp install_vsftp(){ echo "開始安裝vsftp 並且檢查環境" yum -y install vsftpd libdb-utils if [ $? -ne 0 ] then echo "請檢查你的yum源情況,是否出現無法用,可單獨在終端執行 yum makecache 測試" exit 1 fi #檢查防火牆,開放21端口 chcek_friewalld echo "開始配置ftp" mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak #配置數據寫入到配置文件 cat >/etc/vsftpd/vsftpd.conf<<LWT listen=yes anonymous_enable=no dirmessage_enable=YES xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list chroot_local_user=yes guest_enable=YES guest_username=ftp user_config_dir=/etc/vsftpd/vsftpd_user_conf pam_service_name=vsftpd.vu allow_writeable_chroot=YES local_enable=YES LWT read -p "輸入ftp用戶:" ftp_user if [ ! -n "$ftp_user" ];then ftp_user=test fi read -p "輸入ftp用戶密碼:" ftp_passwd if [ ! -n "$ftp_passwd" ];then ftp_passwd=123456 fi cd /etc/vsftpd echo $ftp_user >/etc/vsftpd/user.txt echo $ftp_passwd >>/etc/vsftpd/user.txt db_load -T -t hash -f user.txt vsftpd_login.db chmod 600 /etc/vsftpd/vsftpd_login.db touch /etc/pam.d/vsftpd.vu echo "判斷此系統是32位操作系統還是64位" #判斷centos系統位64位還是32位 xd=`getconf LONG_BIT` if [ $xd -eq '64' ];then echo "此系統為64位" echo "auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login" > /etc/pam.d/vsftpd.vu echo "account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login" >> /etc/pam.d/vsftpd.vu else echo "auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login" > /etc/pam.d/vsftpd.vu echo "account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login" >> /etc/pam.d/vsftpd.vu fi #限制用戶切換工作目錄 touch /etc/vsftpd/chroot_list echo $ftp_user >>/etc/vsftpd/chroot_list #配置虛擬用戶的配置文件 mkdir -p /etc/vsftpd/vsftpd_user_conf cd /etc/vsftpd/vsftpd_user_conf #寫入用戶權限配置 cat >$ftp_user <<LWT write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES LWT echo "local_root="$ftp_data/$ftp_user>>$ftp_user mkdir -p $ftp_data chown -R ftp:root $ftp_data chmod o+rw $ftp_data mkdir -p $ftp_data/$ftp_user chmod -R 777 $ftp_data/$ftp_user systemctl restart vsftpd.service } #創建虛擬用戶 create_user(){ ftp_passwd=123456 read -p "輸入你要創建的用戶名:" ftp_user if [ ! -n "$ftp_user" ];then echo "你沒有輸入用戶名,退出" exit 1 else read -p "輸入密碼:" ftp_pass if [ ! -n "$ftp_pass" ];then echo "密碼沒有輸入,默認123456" else ftp_passwd=$ftp_pass fi fi cd /etc/vsftpd echo $ftp_user >>/etc/vsftpd/user.txt echo $ftp_passwd >>/etc/vsftpd/user.txt db_load -T -t hash -f user.txt /etc/vsftpd/vsftpd_login.db chmod 600 /etc/vsftpd/vsftpd_login.db echo $ftp_user >>/etc/vsftpd/chroot_list cd /etc/vsftpd/vsftpd_user_conf cat >$ftp_user<<LWT write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES LWT echo "local_root="$ftp_data/$ftp_user>>$ftp_user mkdir -p $ftp_data/$ftp_user chmod -R 777 $ftp_data/$ftp_user } echo "輸入你要操作的內容" select var in install_vsftpd create_user quit do case $var in install_vsftpd) install_vsftp; ;; create_user) create_user ;; quit) exit 1 ;; esac done
3.保存
:wq!
4.執行sh腳本
sudo sh install_vsftpd.sh
5.安裝並輸入用戶名
登陸並上傳測試