需求:搭建一个ftp,要求公共资源区,直接输入ftp地址就能访问,项目组区,只有该项目的人能访问,并且能对目录进行增删改查。
匿名用户对应的系统账户是ftp,其宿主目录是/var/ftp(可通过anon_root配置项更改)。如果此目录ftp账户没有写权限,匿名用户就不能上传.
修改vsftpd.conf文件,开放匿名访问。
要使用虚拟用户必须启用本地用户,带来一定安全隐患,我们可以把一些不允许登录的帐号添加到ftpuser文件中
以下操作全是在/etc/vsftpd 目录里面进行。
先建立虚拟用户列表文件xuni.list
vi xuni.list
ladeng //帐号密码一一对应,此行为帐号
123456 // 上面帐号的密码
bushi //帐号
654321 //密码
把列表文件加密
db_load -T -t hash -f xuni.list xuni.db
修改权限,使其更安全
chmod 600 xuni.db
添加用于登录ftp的虚拟用户,并指定用户主目录,以后用这个用户登录ftp,登录成功后的目录就是这里指定的目录。
useradd -d /data/ftp -s /sbin/nologin xuni
chmod 755 /data/ftp 使虚拟用户可以能查看自己登录后的家目录。
配置认证
vi /etc/pam.d/vsftpd.xu
auth required pam_userdb.so db=/etc/vsftpd/xuni // 把认证文件指向我们刚刚加密的用户列表文件,不用加后缀。
account required pam_userdb.so db=/etc/vsftpd/xuni
yum install -y vsftpd db4-utils //安装vsftpd服务相关包
anonymous_enable=YES //允许匿名用户访问
anon_root=/var/ftp //匿名用户根目录
anon_max_rate=0 //不限速
local_enable=YES //启用本地用户
anon_other_write_enable=YES //保证项目组的人能删除自己上传文件的关键
write_enable=YES
anon_umask=022 //在vsftp中,虚拟用户默认作匿名用户处理以降低权限
dirmessage_enable=YES //用户切换进入目录显示.message文件的内容
xferlog_enable=YES // 启用xferlog日志,/var/log/xferlog
connect_from_port_20=YES //允许服务器主动模式
xferlog_std_format=YES
listen=YES
guest_enable=YES // 启用虚拟用户
guest_username=xuni // 把本地用户和虚拟用户对应,这里xuni这个用户其实是个本地用户,这个名字起得不好,容易混淆。。。
pam_service_name=vsftpd.xu // 认证文件指向我们刚刚自己写的/etc/pam.d/vsftpd.xu
userlist_enable=YES
user_config_dir=/etc/vsftpd/xuniuser_dir // 指定虚拟用户配置文件存放目录
建立虚拟用户配置文件
vi /etc/vsftpd/xuniuser_dir/ladeng
anon_upload_enable=YES
anon_mkdir_write_enable=YES
此时,/etc/init.d/vsftpd start
验证权限,当我们直接输入地址登录ftp的时候,只有查看的/var/ftp目录下的文件的权限。
当我们用ladeng 用户登录的时候,能上传,下载,删除文件。
原创文章,转载请注明: 转载自笛声
本文链接地址: 匿名和虚拟用户的FTP
暂无评论