如何在Linux上搭建FTP服务器并创建虚拟用户? (linux搭建ftp服务器虚拟用户)
FTP,即文件传输协议(File Transfer Protocol),是互联网中常用的传输文件的协议之一。在Linux系统中,我们可以通过搭建一个FTP服务器来实现文件的上传和下载,本文将介绍如何在Linux系统上搭建FTP服务器并创建虚拟用户。
一、安装FTP服务器
在Linux系统中,常见的FTP服务器软件有vsftpd、proftpd等,我们这里以vsftpd为例进行介绍。
1.在终端中输入以下命令安装vsftpd:
“`shell
sudo apt-get install vsftpd
“`
2.安装成功后,启动vsftpd服务并配置自启动:
“`shell
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
“`
2.确认vsftpd服务已经启动。可以通过运行以下命令启动vsftpd服务:
“`shell
sudo systemctl start vsftpd
“`
确认服务启动成功:
“`shell
sudo systemctl status vsftpd
“`
二、设置FTP服务器
启动vsftpd服务后,我们需要对FTP服务器进行配置。
1.修改配置文件:
“`shell
sudo nano /etc/vsftpd.conf
“`
去掉以下几行前的注释符号(#):
“`conf
write_enable=YES
local_umask=022
chroot_local_user=YES
“`
解释一下:write_enable设置为YES,允许FTP用户上传文件;local_umask指定文件创建时的权限;chroot_local_user设置为YES,限定FTP用户的目录只能访问其主目录。
2.在配置文件的尾部添加以下内容:
“`shell
user_config_dir=/etc/vsftpd/vusers
virtual_use_local_privs=YES
guest_enable=YES
guest_username=ftp
local_root=/var/www
allow_writeable_chroot=YES
“`
解释一下:user_config_dir指定每个FTP用户的个性配置文件路径,virtual_use_local_privs设置为YES,用户的权限以配置文件为准;guest_enable设置为YES,允许匿名用户访问FTP服务器;guest_username设置匿名用户的账户名;local_root设置FTP服务器的根目录;allow_writeable_chroot设置为YES,根据chroot_local_user的设置,FTP用户在主目录下有一定的写权限。
3.保存文件并退出。
4.为FTP服务器创建一个新的目录:
“`shell
sudo mkdir -p /var/www/ftproot
“`
三、创建FTP用户并配置用户目录
1.创建存储虚拟用户配置文件的目录:
“`shell
sudo mkdir /etc/vsftpd/vusers
“`
2.在/etc/vsftpd/vusers目录下创建虚拟用户的配置文件test:
“`shell
sudo nano /etc/vsftpd/vusers/test
“`
在文件中添加以下内容:
“`conf
local_root=/var/www/ftproot
write_enable=YES
“`
解释一下:local_root指定该FTP用户的根目录;write_enable设置为YES,允许FTP用户上传文件。
3.保存文件并退出。
4.运行以下命令,创建虚拟用户test:
“`shell
sudo db_load -T -t hash -f /etc/vsftpd/vusers/test /etc/vsftpd/vsftpd-virtual-user.db
“`
3.创建和授予FTP用户的本地帐户:
“`shell
sudo useradd -d /var/www/ftproot -s /bin/false test
sudo passwd test
“`
解释一下:useradd命令用于创建系统账户,-d设置用户的主目录,-s设置用户登录时采用的Shell,默认情况下没有Shell,用户只能通过FTP或SFTP访问;passwd命令用于设置用户的本地密码。
4.在FTP服务器的根目录下创建一个文件夹,用于存放FTP用户上传的文件:
“`shell
sudo mkdir /var/www/ftproot/upload
sudo chmod 777 /var/www/ftproot/upload
“`
解释一下:mkdir命令用于创建文件夹;chmod命令用于改变文件的权限,这里将upload文件夹的权限设为777,即让所有用户都具有更高权限。
5.重启vsftpd服务,使配置生效:
“`shell
sudo systemctl restart vsftpd
“`
四、测试FTP服务器
启动vsftpd服务和创建FTP用户之后,我们可以用FTP客户端测试服务器。
1.Filezilla是一个常用的FTP客户端,我们可以使用以下命令在Ubuntu系统中安装它:
“`shell
sudo apt-get install filezilla
“`
2.打开Filezilla,输入服务器ip地址、端口、FTP用户的帐户名和密码。
由于我们上面创建的FTP用户没有Shell,所以需要选择“填写登录类型”,选择“普通”连接方式:
3.成功连接FTP服务器后,我们可以在服务器上上传和下载文件了。要上传到FTP服务器的目录为/var/www/ftproot/upload。
恭喜您已经成功地将FTP服务器搭建在了Linux系统上,并成功创建了虚拟用户。祝您操作愉快!