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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/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 @   雨夜清风  Views(21)  Comments(0Edit  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示