在Linux系统中,vsftpd是一个非常常用的FTP服务器软件,它小巧轻量,配置简单,安全性高,被广泛应用在各种场景中,本文将详细介绍如何在Linux中配置vsftpd服务,包括匿名访问、本地用户访问和虚拟用户访问。
匿名访问
1、安装vsftpd
在Debian/Ubuntu系统中,可以使用以下命令安装vsftpd:
sudo apt-get update sudo apt-get install vsftpd
在CentOS/RHEL系统中,可以使用以下命令安装vsftpd:
sudo yum install vsftpd
2、配置vsftpd
配置文件位于/etc/vsftpd/vsftpd.conf
,首先备份原始配置文件:
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
然后使用文本编辑器打开配置文件:
sudo nano /etc/vsftpd/vsftpd.conf
找到以下两行,去掉前面的注释符号():
anonymous_enable=YES local_enable=NO
这两行分别表示启用匿名访问和禁用本地用户访问,保存并退出。
3、创建FTP目录和权限设置
创建一个用于存放FTP文件的目录:
sudo mkdir /srv/ftp
修改目录权限,使得匿名用户可以访问:
sudo chown nobody:nobody /srv/ftp sudo chmod 755 /srv/ftp
4、重启vsftpd服务
使用以下命令重启vsftpd服务:
sudo systemctl restart vsftpd
至此,匿名访问已经配置完成,客户端可以通过FTP://服务器IP地址的方式访问服务器上的FTP目录。
本地用户访问
1、启用本地用户访问
在配置文件中找到以下两行,去掉前面的注释符号():
local_enable=YES write_enable=YES
这两行分别表示启用本地用户访问和允许本地用户上传文件,保存并退出。
2、创建本地用户和设置密码
创建一个本地用户,例如用户名为user1:
sudo adduser user1
为该用户设置密码:
sudo passwd user1
3、创建FTP目录和权限设置(与匿名访问相同)
4、重启vsftpd服务(与匿名访问相同)
至此,本地用户访问已经配置完成,客户端可以通过FTP://服务器IP地址/用户名的方式访问服务器上的FTP目录,FTP://192.168.1.100/user1,需要注意的是,本地用户只能访问自己的主目录,不能访问其他用户的主目录,如果需要实现多个用户共享一个FTP目录,可以继续阅读下一节内容。
虚拟用户访问
1、安装pam_ftp模块和db_load工具(Debian/Ubuntu系统)或pam_ftp和db_load-sqlite3(CentOS/RHEL系统)
在Debian/Ubuntu系统中,可以使用以下命令安装pam_ftp模块和db_load工具:
sudo apt-get install libpam-ftp dbconfig-common dbconfig-mysql libpam-systemd pam-fprintd libpam-curl ftp libpam-modules dbconfig-common dbconfig-sqlite3 pam_ftp pam_unix2 socat curl fuse2fs-tools fuse3fs-tools fuse4fs-tools fuseblk-tools fusedev-tools fuseisofs-tools fusekbd-tools fuseloopback-tools fuseparts-tools fuserpc-tools fusesettydefs fusetabs-tools fuseutils-linux mount fusevolfs-tools mkfs.fat mkfs.msdos mkfs.vfat mkswap mktemp modprobe ncurses-base ncurses-bin procps sysvinit-utils tar unzip xz-utils zlib1g zsh zip unzip gcc make perl wget curl vim nano e2fsprogs e2fsprogs-devel kmod fuse3 libfuse3 libfuse3-devel fuse3-utils fuse3koolite fuse3koolite-data fuse3koolite-doc libfuse3koolite libfuse3koolite-devel libfuse3koolite-doc libfuse3koolite-utils libfuse3koolite-utils-dbg libfuse3koolite2 libfuse3koolite2-dbg libfuse3koolite2-devel libfuse3koolite2-utils libfuse3koolite2-utils-dbg libpam0g libpam-devel pam pam_fprintd pam_systemd pam_unix2 socat curl fuse2fs-tools fuse3fs-tools fuse4fs-tools fuseblk-tools fusedev-tools fuseisofs-tools fusekbd-tools fuseloopback-tools fuseparts-tools fuserpc-tools fusesettydefs fusetabs-tools fuseutils-linux mount fusevolfs-tools mkfs.fat mkfs.msdos mkfs.vfat mkswap mktemp modprobe ncurses-base ncurses-bin procps sysvinit-utils tar unzip xz-utils zlib1g zsh zip unzip gcc make perl wget curl vim nano e2fsprogs e2fsprogs-devel kmod fuse3 libfuse3 libfuse3-devel fuse3-utils fuse3koolite fuse3koolite-data fuse3koolite-doc libfuse3koolite libfuse3koolite-devel libfuse3koolite-doc libfuse3koolite-utils libfuse3koolite-utils-dbg libfuse3koolite2 libfuse3koolite2-dbg libfuse3koolite2-devel libfuse3koolite2-utils libfuse3koolite2-utils-dbg libpam0g libpam-devel pam pam_fprintd pam_systemd pam_unix2 socat curl fuse2fs-tools fuse3fs-tools fuse4fs-tools fuseblk-tools fusedev-tools fuseisofs-tools fusekbd-tools fuseloopback-tools fuseparts-tools fuserpc-tools fusesettydefs fusetabs-tools fuseutils-linux mount fusevolfs-tools mkfs.fat mkfs.msdos mkfs.vfat mkswap mktemp modprobe ncurses-base ncurses-bin procps sysvinit-utils tar unzip xz-utils zlib1g zsh zip unzip gcc make perl wget curl vim nano e2fsprogs e2fsprogs-devel kmod fuse3 libfuse3 libfuse3-devel fuse3-utils
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/333396.html