一、本地用户的访问
- 建立新用户lee ,并为之设定密码
用lee 的身份登录ftp,看不到内容
这是因为lee用户的家目录本来就是空的
westos用户可以看到其家目录的内容
1、登陆控制
设定本地用户不能登录ftp
此时westos用户不能登录ftp
2、家目录控制
设定本地用户家目录为/westosdir
此时lee 用户登录ftp ,将看到/westosdir 目录中的内容
3、写权限控制
lee 可以在pub 目录中上传和删除文件
关闭写权限
不仅本地用户不可上传
匿名用户也不可上传
4、上传文件权限控制
设定本地用户上传文件权限为600
5、用户登陆控制
/etc/vsftpd/ftpusers :永久黑名单
/etc/vsftpd/user_list :默认黑名单
在永久黑名单中写入lee
lee用户登录ftp,报错530(认证失败)
但是westos用户可以成功登录
在默认黑名单中写入westos用户
此时westos用户不能登录ftp
6、用户登陆白名单
userlist_deny=NO :设定/etc/vsftpd/user_list为白名单,不在名单中的用户不能登陆ftp
当设定userlist_deny=NO时,默认用户不能访问ftp,只有在user_list中存在的用户才能登陆ftp;
当取消设定userlist_deny=NO后,默认用户能访问ftp,只有在user_list中存在的用户才不能登陆ftp;
名单中是lee
此时只有lee 可以登录ftp
7、锁定用户到自己的家目录中
默认用户登陆FTP服务后,是在自己的家目录中,但可以切换到根目录,很不安全。
设定chroot_local_user为YES
此时用户lee 无法登录ftp,这是由于安全级别提升了,会出现安全警告,所以要把写权限减掉,否则权限过大
设定完成后,本地用户将被锁定到自己的家目录中
锁定用户到自己的家目录中的黑名单
在配置目录中创建文件chroot_list ,将lee写入文件
chroot_local_user 默认是no (能切换到根目录)
当设定为yes 后,并修改权限以后,就可以限制用户切换到根目录;
当设定为no ,并且chroot_list 文件存在(有内容)时,表示黑名单设定,名单里的用户会被限制访问根目录。
lee被限制到自己的家目录中
锁定用户到自己的家目录中的白名单
当设定为yes ,并且chroot_list 文件存在(有内容)时,表示白名单设定,名单里的用户不会被限制访问根目录。
此时lee 不会被锁定到自己的根目录
二、虚拟用户访问
- 由于本地用户登陆ftp的时候还可以登陆系统,这样他的权力就太大了,因此x需要建立虚拟用户。
在 /etc/vsftpd/ 下建立认证文件模板 ftpauth。 - 建立用户加密认证文件,-T :转换, -t: 加密方式, -f :指定转换文件 , ftpauth:要加密的文件, ftpauth.db: 最后生成的文件
可以看到ftpauth.db文件的内容为密文
用到的模块是pam(提供用户认证功能)
编辑认证文件/etc/pam.d/ftpauth,required : 必须要通过认证,认证文件为/etc/vsftpd/ftpauth(会自动添加后缀.db)
编辑主配置文件
pam_service_name=westos :指定认证策略文件
guest_enable=YES :指定虚拟用户功能开启
guest_username=ftp :指定虚拟用户在ftp服务器上的用户身份
设定完成后,本地用户无法登录ftp
虚拟用户成功登录ftp
但user1实际上是不存在的
1、虚拟用户家目录的独立设定
建立如下目录
执行 echo $USER 会显示当前用户
设定虚拟用户家目录为/ftphomedir/ USER
User_sub_token:对变量进行声明 , $user的用法是一个变量的用法
此时虚拟用户登录ftp后,看到的内容为自己家目录中的内容
2、用户配置独立
将全局配置中的设定关闭
使用如下参数进行设定
编辑 /etc/vsftpd/user_config/user ,设定user1 可以上传文件
user_config_dir=/etc/vsftpd/user_config :在此目录中与用户名称相同的文件为用户配置文件
设定完成后,只有user1可以在pub 目录中上传文件