生产环境中安装vsftpd的shell脚本

简介:
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://navyaijm.blog.51cto.com/4647068/822356

vi install_vsftpd.sh

#!/bin/bash
# Remove=>Download=>Install=>Configure=>Start service "vsftpd"
#
# /usr/bin/yum => #!/usr/bin/python2.4

# Remove old
/sbin/service vsftpd stop
/usr/bin/yum -y remove vsftpd db4-utils
/bin/rm -rf /etc/vsftpd

# Download and install new program
/usr/bin/yum -y install vsftpd db4-utils

#####################
# Configure from here

# Make directories
/bin/mkdir -p /etc/vsftpd/roles /data/ftpdata /data/data1 /data/data2

# Add local user 'vftp' with local directory '/data/ftp'
/usr/sbin/useradd -s /sbin/nologin vftp -d /data/ftpdata
/bin/chmod 700 /data/ftpdata
/bin/chown vftp:vftp /data/ftpdata

# Use configuration settings below
test -f /etc/vsftpd/vsftpd.conf && /bin/mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.old
/bin/cat > /etc/vsftpd/vsftpd.conf << _vsftpconfig
anon_mkdir_write_enable=NO
anon_root=/dev/zero
anon_upload_enable=NO
anon_world_readable_only=YES
anonymous_enable=NO
banner_file=/etc/vsftpd/issue
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
connect_from_port_20=YES
data_connection_timeout=120
dirmessage_enable=YES
ftpd_banner=Welcome to use mercury FTP server.
guest_enable=YES
guest_username=vftp
hide_file={.*}
pam_service_name=vsftpd.vu
idle_session_timeout=600
local_enable=YES
local_umask=022
log_ftp_protocol=YES
passwd_chroot_enable=NO
pasv_enable=YES
pasv_min_port=9981 
pasv_max_port=10281 
listen_ipv6=NO
listen_port=6666
listen=YES
tcp_wrappers=YES
use_localtime=YES
user_config_dir=/etc/vsftpd/roles
userlist_enable=YES
virtual_use_local_privs=YES
write_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
_vsftpconfig

# Create virtual accounts
/bin/cat > /etc/vsftpd/accounts << _accounts
ftpdata
123
data1
123
data2
123
_accounts

/usr/bin/db_load -T -t hash -f /etc/vsftpd/accounts /etc/vsftpd/accounts.db
/bin/chmod 0600 /etc/vsftpd/accounts.db
echo "/usr/bin/db_load -T -t hash -f /etc/vsftpd/accounts /etc/vsftpd/accounts.db" > /etc/vsftpd/create.sh
echo "/bin/chmod 0600 /etc/vsftpd/accounts.db" >> /etc/vsftpd/create.sh
/bin/chmod u+x /etc/vsftpd/create.sh

# Add PAM
test $(/usr/bin/getconf LONG_BIT) -eq 64 && logBit=64
/bin/cat > /etc/pam.d/vsftpd.vu << _pam
#%PAM-1.0
auth       sufficient     /lib${logBit:+64}/security/pam_userdb.so db=/etc/vsftpd/accounts
account    sufficient     /lib${logBit:+64}/security/pam_userdb.so db=/etc/vsftpd/accounts
_pam

# User permission
> /etc/vsftpd/chroot_list

/bin/cat > /etc/vsftpd/roles/ftpdata << _ftpdata
local_root=/data/ftpdata
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=no
virtual_use_local_privs=yes
anon_mkdir_write_enable=no
_ftpdata

/bin/cat > /etc/vsftpd/roles/data1 << _data1
local_root=/data/data1
anon_world_readable_only=no
write_enable=no
anon_upload_enable=no
virtual_use_local_privs=yes
anon_mkdir_write_enable=no
_data1

/bin/cat > /etc/vsftpd/roles/data2 << _data2
local_root=/data/data2
anon_world_readable_only=no
write_enable=no
anon_upload_enable=no
virtual_use_local_privs=yes
anon_mkdir_write_enable=no
_data2

/bin/cat > /etc/vsftpd/issue << _ftpissue
==== Welcome to use mercury ftp server ====
Your host,ipaddress and all your operate will be logged,enjoy yourself.
_ftpissue

# selinux
#SELINUX_FLAG=$(/usr/bin/awk -F"=" '/^SELINUX/ {print $2}' /etc/sysconfig/selinux)
#test "$SELINUX_FLAG" != "enforcing" && /bin/sed -i 's/SELINUX=.*$/SELINUX=enforcing/' /etc/sysconfig/selinux
/usr/sbin/setsebool -P ftpd_disable_trans on
# chkconfig
/sbin/chkconfig vsftpd on

# Start service "vsftpd"
/sbin/service vsftpd start
# type "ftp localhost" to test
# END

 

本文出自 “屌丝运维男” 博客,请务必保留此出处http://navyaijm.blog.51cto.com/4647068/822356

目录
相关文章
|
18天前
|
弹性计算 Shell Perl
ecs服务器shell常用脚本练习(二)
【4月更文挑战第1天】shell代码训练(二)
102 1
|
1天前
|
运维 监控 Shell
利用Shell脚本编写局域网监控软件:实时监测主机连接情况
本文介绍了如何使用Shell脚本创建一个局域网监控工具,以实时检查主机连接状态。脚本包括扫描IP地址范围检测主机可达性及使用`netstat`监控ESTABLISHED连接。此外,还展示了如何每60秒将连接数数据自动提交到指定网站API,以便实时跟踪网络活动。这个自动化监控系统有助于提升网络安全性和故障排查效率。
7 0
|
2天前
|
Shell
Shell脚本之流程控制语句
Shell脚本之流程控制语句
|
3天前
|
JSON 运维 监控
训练shell常用脚本练习(三)
【4月更文挑战第14天】shell代码训练(三)
14 1
|
7天前
|
存储 弹性计算 Shell
ecs服务器shell常用脚本练习(十)
【4月更文挑战第11天】shell代码训练(十)
137 0
|
7天前
|
弹性计算 Shell Go
ecs服务器shell常用脚本练习(九)
【4月更文挑战第10天】shell代码训练(八)
124 0
|
11天前
|
弹性计算 Shell Linux
ecs服务器shell常用脚本练习(六)
【4月更文挑战第4天】shell代码训练(六)
108 0
|
16天前
|
弹性计算 Shell 应用服务中间件
ecs服务器shell常用脚本练习(四)
【4月更文挑战第4天】shell代码训练(四)
96 0
|
18天前
|
Shell
【shell】实时查看网卡流量脚本
【shell】实时查看网卡流量脚本
|
18天前
|
Shell Linux
Linux的shell入门教程shell脚本入门教程
Linux的shell入门教程shell脚本入门教程
15 0