Deepin下vsftp服务安装配置虚拟用户

1. 系统环境

Deepin20.9

2. 在线安装

复制代码
# apt install -y vsftp       //安装ftp服务软件
# apt install -y db-util     //安装虚拟用户密码库处理软件

3. 离线安装

3.1 下载依赖包

复制代码
# apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends vsftpd | grep -v i386 | grep "^\w")
# apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends db-util| grep -v i386 | grep "^\w")

3.2 安装

复制代码
# dpkg -i *.deb

4. 创建虚拟ftp目录

复制代码
# mkdir -p  /data/vftp/pub
# chmod a-w /data/vftp

5. 创建虚拟ftp用户

5.1 #创建虚拟用户源文件

  • 一行用户名,一行密码

    vi /etc/vsftpd/vusers.list

    user1
    user1pass
    user2
    user2pass
    [EOF]

5.2 根据虚拟用户源文件生成虚拟用户密码库

复制代码
# db_load -T -t hash -f /etc/vsftpd/vusers.list /etc/vsftpd/vusers.db
# chmod 600 /etc/vsftpd/vusers.db

5.3 创建虚拟ftp系统用户vftp和服务用户user1、user2

复制代码
# useradd -g ftp -d /data/vftp -s /sbin/nologin vftp
# chown vftp.ftp /data/vftp

# useradd -g ftp -d /data/vftp/user1 -s /sbin/nologin user1
# chown user1.ftp /data/vftp/user1

# useradd -g ftp -d /data/vftp/user2 -s /sbin/nologin user2
# chown user2.ftp /data/vftp/user2

6. 配置虚拟用户验证

复制代码
# vi /etc/pam.d/vsftpd

# Standard behaviour for ftpd(8).
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.

# Standard pam includes
@include common-account
@include common-session
@include common-auth
#auth required pam_shells.so #需注释

auth    sufficient    pam_userdb.so db=/etc/vsftpd/vusers #添加行,指向虚拟用户密码库
account sufficient    pam_userdb.so db=/etc/vsftpd/vusers #添加行,指向虚拟用户密码库

7. 配置文件

7.1 vsftpd配置文件/etc/vsftpd.conf

复制代码
listen=YES                                 #启用服务
write_enable=YES                           #启用可写操作
listen_port=30021                          #指定端口
#listen_address=xxx.xxx.xxx.xxx            #指定主机IP

anonymous_enable=NO                        #禁用匿名服务
local_enable=YES                           #启用系统用户服务
local_umask=022
chroot_local_user=YES                      #启用禁止系统用户使用chroot()功能

#虚拟用户   
pam_service_name=/etc/pam.d/vsftpd         #指向虚拟用户验证配置文件
guest_enable=YES                           #启用虚拟用户服务
guest_username=vftp                        #支持虚拟用户服务的系统用户
user_config_dir=/etc/vsftpd/vusers         #虚拟用户配置目录
chroot_list_enable=YES                     #启用禁止chroot()功能
chroot_list_file=/etc/vsftpd/vusers.list   #指向需要禁止chroot()功能的用户文件

virtual_use_local_privs=YES                #虚拟用户使用系统用户相同的权限
use_localtime=YES                          #使用系统时间

7.2 虚拟用户配置文件

  • /etc/vsftpd/vusers/user1

    guest_enable=yes
    guest_username=user1
    local_root=/data/vftp/user1
    anon_upload_enable=YES
    anon_world_readable_only=NO
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    write_enable=YES

  • /etc/vsftpd/vusers/user2

    guest_enable=yes
    guest_username=user2
    local_root=/data/vftp/user2
    anon_upload_enable=YES
    anon_world_readable_only=NO
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    write_enable=YES

8. 启停服务

复制代码
# systemctl enable  vsftpd     //启用自动启动服务
# systemctl start   vsftpd     //启动服务
# systemctl stop    vsftpd     //停止服务
# systemctl restart vsftpd     //重启服务
相关推荐
冼紫菜4 分钟前
[特殊字符]CentOS 7.6 安装 JDK 11(适配国内服务器环境)
java·linux·服务器·后端·centos
Chuncheng's blog1 小时前
RedHat7 如何更换yum镜像源
linux
爱莉希雅&&&1 小时前
shell脚本之条件判断,循环控制,exit详解
linux·运维·服务器·ssh
wei_work@2 小时前
【linux】Web服务—搭建nginx+ssl的加密认证web服务器
linux·服务器·ssl
hgdlip2 小时前
怎么快速换电脑浏览器的ip:方法与注意事项
网络·网络协议·tcp/ip·电脑
可怜的Tom被玩弄于股掌之中2 小时前
BUUCTF——Nmap
网络·安全·web安全·网络安全
扶尔魔ocy2 小时前
【Linux C/C++开发】轻量级关系型数据库SQLite开发(包含性能测试代码)
linux·数据库·c++·sqlite
Sylvan Ding3 小时前
远程主机状态监控-GPU服务器状态监控-深度学习服务器状态监控
运维·服务器·深度学习·监控·远程·gpu状态
慢一点会很快3 小时前
【vscode】解决vscode无法安装远程服务器插件问题,显示正在安装
服务器·ide·vscode
今儿敲了吗3 小时前
计网| 网际控制报文协议(ICMP)
网络·智能路由器