生产环境中安装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

目录
相关文章
|
7月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
666 9
|
7月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
681 2
|
10月前
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
364 60
|
7月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
9月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
1108 1
|
11月前
|
存储 Unix Shell
确定Shell脚本在操作系统中的具体位置方法。
这对于掌握Linux的文件系统组织结构和路径方面的理解很有帮助,是我们日常工作和学习中都可能使用到的知识。以上讲解详细清晰,应用简便,是每一个想要精通操作系统的计算机爱好者必备的实用技能。
498 17
|
11月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
592 3
|
Linux 网络安全 数据安全/隐私保护
Linux vsFTPd服务详解——文件加密传输配置
Linux vsFTPd服务详解——文件加密传输配置
538 2
|
安全 Linux 应用服务中间件
[笔记]CentOS7 vsftpd安装及配置使用
[笔记]CentOS7 vsftpd安装及配置使用
1434 0
|
Ubuntu 安全 网络安全
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
759 13