ftp虚拟用户

ftp虚拟用户

一.虚拟用户配置

vim /etc/vsftpd/users             ##编辑虚拟用户文件

bss

westos

tom

westos

db_load -T -t hash -f users userd.db     ##对文件进行加密

vim /etc/pam.d/vsftpd.db            ##编写认证文件

  auth required pam_userdb.so db=/etc/vsftpd/userd

  account required pam_userdb.so db=/etc/vsftpd/userd

Vim /etc/vsftpd/vsftpd.conf          ##编写主配置文件

  anonymous_enable=NO         ##匿名用户禁止登录

  local_enable=YES            ##本地用户允许登录

  write_enable=YES            ##本地用户可写

  local_umask=022             ##创建文件预留的umask

  anon_upload_enable=YES          ##匿名用户能否上传

  anon_other_write_enable=YES       ##匿名用户是否可写

  anon_mkdir_write_enable=YES       ##匿名用户能否创建目录

  connect_from_port_20=YES       ##指定端口为20进行数据传输(默认)

  dirmessage_enable=YES          ##欢迎语设置(默认)

  xferlog_enable=YES           ##是否启用上传/下载日志记(默认)

  xferlog_std_format=YES         ##如果启用,则日志文件将会写成xferlog的标 准格式(默认)

  listen=NO                ##设置vsftpd服务器是否以standalone模式 运行(默认)

  listen_ipv6=YES             ##默认

  pam_service_name=vsftpd.db      ##指定认证文件

  guest_enable=YES            ##开启虚拟用户

  guest_username=ftp            ##虚拟用户的宿主用户(此用户必须真实存在)

  userlist_enable=YES            ##是否启用vsftpd.user_list文件。(默认)

  tcp_wrappers=YES            ##设置vsftpd是否与tcp wrapper相结合来进 行主机的访问控制(默认)

chown ftp:ftp /var/ftp/pub            ##不要更改用户家目录的权限,否则会报错

systemctl restart vsftpd

测试:

lftp 192.168.8.254 -ubss

Password:

lftp bss@192.168.8.254:/> cd pub/

ftp bss@192.168.8.254:/pub> mkdir ll

mkdir ok, `ll' created

lftp bss@192.168.8.254:/pub> cd ll/

lftp bss@192.168.8.254:/pub/ll> put ff

lftp bss@192.168.8.254:/pub/ll> rm ff

rm ok, `ff' removed

lftp bss@192.168.8.254:/pub/ll> cd ..

lftp bss@192.168.8.254:/pub> rm -r ll

rm ok, `ll' removed

lftp bss@192.168.8.254:/pub> exit

二.虚拟用户独立家目录配置

vim vsftpd.conf               ##编辑配置文件(添加)

  local_root=/ftphome/$USER        ##指定虚拟用户的家目录

  user_sub_token=$USER           ##shell变量引用到此文件中

mkdir /ftphome/bss/bss -p ##创建虚拟用户的家目录

mkdir /ftphome/tom/tom -p

chown ftp:ftp /ftphome/bss/bss/       ##更改目录用户,使其可写(也可更改其权限)

chown ftp:ftp /ftphome/tom/tom/

测试:

lftp 192.168.8.254 -ubss

Password:

lftp bss@192.168.8.254:~> ls          

drwxr-xr-x    2 14       50              6 Jul 30 02:36 bss

lftp bss@192.168.8.254:/> cd bss/

lftp bss@192.168.8.254:/bss> ls

lftp bss@192.168.8.254:/bss> put ff

lftp bss@192.168.8.254:/bss> rm ff

rm ok, `ff' removed

lftp bss@192.168.8.254:/bss> exit

三.虚拟用户独立权限设定

:bss不可上传,tom可上传

vim vsftpd.conf                 ##编辑配置文件(添加)

  user_config_dir=/etc/vsftpd/user_conf

mkdir /etc/vsftpd/user_conf           ##创建指定目录(与配置文件中一至)

cd /etc/vsftpd/user_conf

vim bss

anon_upload_enable=NO             ##配置该用户的权限

systemctl restart vsftpd

测试:

lftp 192.168.8.254 -utom

Password:

lftp tom@192.168.8.254:~> ls          

drwxr-xr-x    2 14       50              6 Jul 30 03:02 tom

lftp tom@192.168.8.254:/> cd tom/

lftp tom@192.168.8.254:/tom> put ff

lftp tom@192.168.8.254:/tom> ls

-rw-------    1 14       50              0 Jul 30 03:03 ff

lftp tom@192.168.8.254:/tom> exit

lftp 192.168.8.254 -ubss

Password:

lftp bss@192.168.8.254:~> ls          

drwxr-xr-x    2 14       50              6 Jul 30 02:49 bss

lftp bss@192.168.8.254:/> cd bss/

lftp bss@192.168.8.254:/bss> ls

lftp bss@192.168.8.254:/bss> put ff

put: Access failed: 550 Permission denied. (ff)

lftp bss@192.168.8.254:/bss> exit

PS:

1.用户登录家目录锁定

chroot_local_user=YES    ##将登录用户锁定在自己的家目录中

chroot_list_enable=YES    ##和下方参数配合使用,是否读取下方文件

chroot_list_file=/etc/vsftpd/chroot_list  ##此文件记录的用户将会被读取锁定在自己的家目录中(该文件需自己创建)

2.禁止登陆名单(默认)

在/etc/vsftpd/ftpusers  这个文件中的用户名是无法登录ftp服务的(默认)

同时/etc/vsftpd/user_list 这个文件也起到禁止登陆效果

但此文件的效果可以跟着usrlist_deny=NO 这个参数的配置改变

3.限速

anon_max_rate=102400    ##单位是字节

4.客户端连接限制

man_clients=2

5.`ls' at 0 [FEAT negotiation...]   遇到这个提示如何连接

lftp ftpserver -ubss     ##登录后不要直接查看,在会话框中输入下面两条命令

set ftp:ssl-allow false

set ftp:use-feat false

ls

这个问题的原因未知,解决方法未知

原文地址:https://www.cnblogs.com/zhengyipengyou/p/11269894.html