linux服务器设置ftp,Linux下如何设置FTP服务器

Linux下如何设置FTP服务器

2018-02-24   兮克小研

FTP,即File Transfer Protocol,翻译成中文为“文件传输协议”。它是在计算机网络中服务器和客户端之间传送文件的一种标准网络协议。详情请参阅相关RFC文档,地址为“https://tools.ietf.org/html/rfc959”。使用FTP服务,需要在服务器端安装、配置FTP服务器程序,在客户端安装FTP客户端程序。linux下常见的FTP服务器程序有ftpd、proftpd、pure-ftpd、vsftpd,这次给大家介绍的就是vsftpd的安装和使用。

一、安装vsftpd

使用“sudo apt-get install vsftpd”命令安装FTP服务器程序,使用“vsftpd -v”命令可以查看您安装的FTP服务器程序版本号,如图1所示。

efbae3d0654762ddc9fc21ea7bdf5be7.png

图1 安装vsftpd

安装vsftpd后,首先对配置文件进行备份,命令如下:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

使用命令“vi /etc/vsftpd.conf”在配置文件中把PAM服务名称“pam_service_name=vsftpd”改为“pam_service_name=ftp”,如图2所示。

aeaa5b96dda3de780f107fd5e618a9b3.png

图2 修改PAM名称

保存退出后重启服务,命令如下:

sudo service vsftpd restart

二、创建用户

vsftpd支持匿名用户、本地用户、虚拟用户等几种登录方式,默认只开启本地用户登录模式。为了演示FTP服务器的使用,小研创建了两个用户组均为test_ftp、密码均为1的本地用户test_ftp01、test_ftp02,命令如下:

sudo groupadd test_ftp

sudo useradd -N -g test_ftp -m -p `echo -n 1|openssl passwd -1 -stdin` test_ftp01

sudo useradd -N -g test_ftp -m -p `echo -n 1|openssl passwd -1 -stdin` test_ftp02

命令执行成功后,如图3所示。

513519348e3fed184314a58405ff7a3e.png图3创建FTP用户

三、使用FTP服务

通过Web浏览器即可以使用FTP服务。首先,查看一下服务器端IP地址,如图4所示。

adc94b069a9362e14a5142ed5d39ecf7.png

图4 查看IP地址

接着,在客户端中使用Web浏览器访问FTP服务器。小研的客户端操作系统为Windows Server 2012 R2评估版,打开IE浏览器,输入FTP地址“ftp://192.168.56.101”,按回车键确定,此时会弹出FTP用户登录窗口。

8da2dcf7d019569d2bc91e770a620b32.png

图5 FTP用户登录

输入刚才创建的本地用户用户名和密码,登录成功,显示服务器中的文件和目录列表,如图6所示。

640b390714d2b4ace32a8f4855e1c834.png图6 显示FTP服务器文件列表

四、配置FTP服务

安装vsftpd后,系统会自动创建默认的配置文件,路径为“/etc/vsftpd.conf”,可以通过修改该配置文件实现一些特定的功能,如:

1、限制用户访问目录

为了安全考虑,一般不允许FTP用户像图5一样访问整个文件系统,而只允许其访问某个特定目录。此时,需要将配置文件中的“chroot_local_user”选项设置为“YES”,从而可以将FTP用户的根目录锁定在其主目录。

可以使用vi或其他文本编辑工具打开配置文件vsftpd.conf,找到“#chroot_local_user=YES”这一行,把“#”去掉,取消注释,也可以使用如下命令设置该选项:

sudo sed -i.bak ‘s/^#chroot_local_user=.*$/chroot_local_user=YES/g’ /etc/vsftpd.conf

设置完毕后,使用如下命令重启服务,启用新的配置:

sudo service vsftpd restart

使用firefox浏览器打开FTP服务器,输入用户名和密码,提示500错误。如图7所示。

05c5dbebb1424675aee6552496174e59.png

图7 chroot错误

这个错误是由FTP用户的主目录对于该用户具有写权限而导致的,可以通过设置“local_root”的取值指定符合条件的根目录。小研在vsftpd.conf中添加了一行“local_root=/srv/ftp”,从而将FTP用户的根目录设置在统一的位置“/srv/ftp”,该目录是vsftpd安装后自动创建的匿名用户默认共享目录。重启vsftpd服务器后,FTP用户登录后的根目录变成了“/srv/ftp”,如图8所示。

2cfebdf8f56c4535f65c55df64183a46.png

图8 chroot成功

2、提供写文件功能

需要在配置文件中增加“write_enable=YES”,启用写文件功能,重启vsftpd服务器。但由于“/srv/ftp”对于非root用户无写入权限,您无法上传文件,因此可以在FTP服务器上创建具有写入权限的目录供FTP用户使用,命令如下:

sudo mkdir /srv/ftp/public

sudo chgrp test_ftp /srv/ftp/public

sudo chmod 0775 /srv/ftp/public

打开“这台电脑”或“资源管理器”,输入FTP地址并登录FTP服务器,就可以创建目录或通过复制粘贴的功能上传文件了,如图9、图10所示。

e773d1e182c2911de8247352348c5d11.png图9 创建目录

752b48effc45b8ca5dfa293eabc3ceb7.png图10 上传文件3、共享文件

然而,默认上传文件权限被设置成同组用户和其他用户均无任何权限,如FTP用户test_ftp02将无法访问FTP用户test_ftp01上传的文件,如图11所示。

38da94c13e5cb0149b86e6b56b8895df.png图11FTP用户test_ftp02无法访问FTP用户test_ftp01创建的目录通过设置“local_umask=022”使同组用户和其他用户具有读权限。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值