新建一个shell文档
touch vsftpdinstall.sh
编辑vsftpdinstall.sh
vi vsftpdinstall.sh
添加以下内容:
pwd
string=`pwd`
#安装vsftpd
yum install -y vsftpd
service vsftpd start
chkconfig vsftpd on
yum install -y db4*
#创建一个文件
cd /home
touch virtual
chmod 755 virtual
ed -s ./virtual <<EOF
a
vs
vs123
all
all123
.
w
q
EOF
db_load -T -t hash -f /home/virtual /etc/virtual.db
chmod 600 /etc/virtual.db
#修改配置文件
cd /etc/pam.d
sed -i 's/^/#&/g' vsftpd
sed -i '$ a\auth required /lib/security/pam_userdb.so db=/etc/virtual\naccount required /lib/security/pam_userdb.so db=/etc/virtual' vsftpd
#创建虚拟用户
useradd -d /home/virtualuser -s /sbin/nologin virtualuser
passwd virtualuser
chown -R virtualuser:virtualuser /home/virtualuser
chmod -R 755 /home/virtualuser
#在/home/virtual创建用户目录
mkdir /home/virtualuser/vs
mkdir /home/virtualuser/all
chmod 777 /home/virtualuser/vs
chmod 777 /home/virtualuser/all
mkdir /etc/vsftpd_user_conf
cd /etc/vsftpd_user_conf
touch /etc/vsftpd_user_conf/vs
touch /etc/vsftpd_user_conf/all
#编辑文件vs
ed -s ./vs <<EOF
a
virtual_use_local_privs=YES
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/virtualuser/vs
.
w
q
EOF
#编辑文件all
ed -s ./all <<EOF
a
virtual_use_local_privs=YES
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/virtualuser/all
.
w
q
EOF
#修改vsftpd配置文件vsftpd.conf
cd /etc/vsftpd
mv vsftpd.conf vsftpd.conf.backup
touch vsftpd.conf
ed -s ./vsftpd.conf <<EOF
a
listen=YES
anonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
guest_enable=YES
guest_username=virtualuser
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd
local_enable=YES
secure_chroot_dir=/var/run/vsftpd
.
w
q
EOF
#创建一个/var/run/vsftpd文件夹
mkdir /var/run/vsftpd
service vsftpd restart
chmod 755 vsftpdinstall.sh
./vsftpdinstall
执行完毕就可以用ftp访问了。
默认用户为文件virtual 里面的用户名密码,基数行为用户名,偶数行为密码。
如要添加或其他用户,在文件virtual里面添加,再执行
db_load -T -t hash -f /home/virtual /etc/virtual.db
再在/etc/vsftpd_user_conf中添加对应的配置文件,重启vsftpd
不同用户可以有不同权限,权限设置如下
virtual_use_local_privs参数
当 virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;
当 virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。
当 virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES 时,虚拟用户不能浏览目录,只能上传文件,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO 时,虚拟用户只能下载文件,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES 时,虚拟用户只能上传和下载文件,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES 时,虚拟用户只能下载文件和创建文件夹,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES 时,虚拟用户只能下载、删除和重命名文件,无其他权限。