Linux 7 下ftp 创建的脚本

#---------------------------------------------------------
# 本脚本适用与centos7.6平台;匿名登录,默认下载目录为/var/ftp/pub
#---------------------------------------------------------
1
#!/bin/bash 2 yum install -y update vim 3 sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config 4 systemctl stop firewalld && systemctl disable firewalld 5 6 #安装ftp插件 7 yum install -y vsftpd 8 9 #修改配置文件/etc/vsftpd/vsftpd.conf 10 11 echo "anonymous_enable=YES 12 local_enable=YES 13 write_enable=YES 14 local_umask=022 15 dirmessage_enable=YES 16 xferlog_enable=YES 17 connect_from_port_20=YES 18 xferlog_std_format=YES 19 listen=NO 20 listen_ipv6=YES 21 22 pam_service_name=vsftpd 23 userlist_enable=YES 24 tcp_wrappers=YES" > /etc/vsftpd/vsftpd.conf 25 26 27 #启动服务 28 systemctl start vsftpd && systemctl enable vsftpd

 

本地用户登录ftp的脚本;

 1 #!/bin/bash
 2 yum install -y update vim
 3 sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config
 4 systemctl stop firewalld && systemctl disable firewalld
 5 
 6 #安装ftp插件
 7 yum install -y vsftpd
 8 
 9 read -p "请创建用户名称:" ftpuser
10 read -p "请输入密码:" $passwd
11 mkdir /var/ftp/data
12 useradd $ftpuser
13 passwd $passwd
14 chown $ftpuser:$ftpuser /var/ftp/data/
15 
16 #修改配置文件/etc/vsftpd/vsftpd.conf
17 
18 echo "anonymous_enable=NO
19 local_enable=YES
20 write_enable=YES
21 local_root=/var/ftp/data
22 local_umask=022
23 
24 dirmessage_enable=YES
25 listen=YES
26 listen_ipv6=NO
27 dirmessage_enable=YES
28 xferlog_enable=YES
29 xferlog_std_format=YES
30 
31 pam_service_name=vsftpd
32 userlist_enable=YES
33 tcp_wrappers=YES" > /etc/vsftpd/vsftpd.conf
34 
35 
36 #启动服务
37 systemctl start vsftpd && systemctl enable vsftpd

 

 

虚拟用户登录ftp

#!/bin/bash
# 基础配置
yum install -y vsftpd pam pam-devel db4 db4-devel db4-utils db4-tcl 
sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config
setenforce 0
systemctl stop firewalld && systemctl disable firewalld

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
cat > /etc/vsftpd/vsftpd.conf <<EOF
# ----虚拟用户服务的配置文件------------------------
#禁止匿名登录FTP服务器
anonymous_enable=NO
##允许本地用户登录FTP服务器
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
connect_from_port_20=YES

#记录上传下载的日志文件
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
#全面日志记录
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log

ascii_upload_enable=YES
ascii_download_enable=YES
##监听IPv4 sockets
listen=YES
# 虚拟用户pam认证文件
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

#全部用户被限制在主目录
chroot_local_user=YES
#启用例外用户名单
chroot_list_enable=YES
allow_writeable_chroot=YES
#指定例外用户列表文件,列表中用户不被锁定在主目录
chroot_list_file=/etc/vsftpd/chroot_list

guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
#虚拟用户配置文件
user_config_dir=/etc/vsftpd/vconf
EOF
 
# 创建虚拟用户配置文件存放的目录,这个目录是vsftpd.conf配置文件中的参数user_conf_dir=/etc/vsftpd/vconf定义的
mkdir -p /etc/vsftpd/vconf

# 创建保存虚拟用户的文件
touch /etc/vsftpd/vusers

# 在保存虚拟用户的文件中建立用户
echo "test" >> /etc/vsftpd/vusers
echo "123456" >> /etc/vsftpd/vusers

# 生成虚拟用户数据库加密文件
db_load -T -t hash -f /etc/vsftpd/vusers /etc/vsftpd/vusers.db

# 备份vsftpd的pam认证文件/etc/pam.d/vsftpd
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

# 修改vsftpd的pam文正文件
cat > /etc/pam.d/vsftpd << EOF
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
EOF

# 虚拟用户的用户配置文件
cat > /etc/vsftpd/vconf/test << EOF
local_root=/srv/vsftpd/test
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
EOF

# 虚拟用户的ftp上传目录
mkdir -p /srv/vsftpd/test
chown -R ftp.root /srv/vsftpd/test

# 创建文件vsftpd.conf配置文件中参数 chroot_list_file=/etc/vsftpd/vsftpd.chroot_list定义的文件,由chroot_local_user=YES,chroot_list_enable=YES 这两个参数配合使用
touch /etc/vsftpd/chroot_list

systemctl start vsftpd && systemctl enable vsftpd

  

posted @ 2023-06-13 10:56  雨夜清风  Views(18)  Comments(0Edit  收藏  举报