星空5G 导航

如何在linux下开启FTP服务-

2024-07-15编辑:本站
如何在linux下开启FTP服务~

Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa |grep vsftpd 来查看是否安装相应的包,如果没有安装那么可以执行 yum -y install vsftpd 来安装,安装之后首先创建ftp用户,比如ftp_test,命令如下:
useradd -s /sbin/nologin -d /home/ftp_test ftp_test目录尽量不要选择根目录下,这里是/home/ftp_test,并且ftp_test这个目录不要手动创建,否则权限会有问题,执行命令的时候会自动创建,

可以看到权限现在是对于ftp_test用户是可读可写可执行的,其他用户和组下面的都没有任何权限,现在为ftp_test用户创建密码:
passwd ftp_test
执行之后输入2次密码确认就设置好了密码
然后编辑vsftpd配置文件,位置是:vim /etc/vsftpd/vsftpd.conf
找到anonymous_enable这个配置项,默认是YES,修改成NO,表示不允许匿名用户登录

现在直接保存配置文件,执行 systemctl start vsftpd.service 启动vsftp服务,然后可以通过命令: systemctl status vsftpd.service 查看ftp服务的运行状态,现在就可以用ftp客户端进行连接了,这里用FileZilla测试,连接正常

现在基本的ftp服务就部署完了,客户端可以正常上传,下载,修改文件;但是这样有个问题就是所有的目录都暴露给客户端了,虽然客户端不能随意修改删除其余的文件,但是因为目录可见,所以总会有一些风险,所以接下来还需要配置让ftp用户只在自己的家目录下面活动,而无法查看其它任何目录,同样是打开配置文件/etc/vsftpd/vsftpd.conf,找到chroot_local_user=YES这个配置,默认是注释的,这里去掉注释,表示只让用户在自己的目录里面活动,如果只是保存这一个配置的话,用ftp连接客户端会返回500 OOPS: vsftpd: refusing to run with writable root inside chroot()的错误,即禁止运行在可写的家目录中,因为刚才ftp_test这个目录有w权限,而现在我们使用的vsftpd版本是3.0.2 属于比较新的版本,为了安全性做了一些限制,如果你此时想通过 chmod a-w /home/ftp_test 来去掉目录的写权限,那么连接成功是没问题的,但是无法上传文件了,所以网上很多说修改权限的方法是不可取的,正确的做法是应该在下面添加一行配置allow_writeable_chroot=YES表示允许对家目录的写权限,具体配置如下:

配置完这两项以后保存退出,然后执行 systemctl restart vsftpd.service 重启vsftpd服务,现在重新使用ftp连接就成功了,并且任何操作也是没问题的

现在可以看到上面的路径是一个/,对于ftp用户来说也就是根目录了,只能在这个目录下操作,而无法跳出这个目录
以上就是vsftpd服务的基本搭建过程,实际使用时可以分配多个用户

Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa |grep vsftpd 来查看是否安装相应的包,如果没有安装那么可以执行 yum -y install vsftpd 来安装,安装之后首先创建ftp用户,比如ftp_test,命令如下:
useradd -s /sbin/nologin -d /home/ftp_test ftp_test目录尽量不要选择根目录下,这里是/home/ftp_test,并且ftp_test这个目录不要手动创建,否则权限会有问题,执行命令的时候会自动创建,

可以看到权限现在是对于ftp_test用户是可读可写可执行的,其他用户和组下面的都没有任何权限,现在为ftp_test用户创建密码:
passwd ftp_test
执行之后输入2次密码确认就设置好了密码
然后编辑vsftpd配置文件,位置是:vim /etc/vsftpd/vsftpd.conf
找到anonymous_enable这个配置项,默认是YES,修改成NO,表示不允许匿名用户登录

现在直接保存配置文件,执行 systemctl start vsftpd.service 启动vsftp服务,然后可以通过命令: systemctl status vsftpd.service 查看ftp服务的运行状态,现在就可以用ftp客户端进行连接了,这里用FileZilla测试,连接正常

现在基本的ftp服务就部署完了,客户端可以正常上传,下载,修改文件;但是这样有个问题就是所有的目录都暴露给客户端了,虽然客户端不能随意修改删除其余的文件,但是因为目录可见,所以总会有一些风险,所以接下来还需要配置让ftp用户只在自己的家目录下面活动,而无法查看其它任何目录,同样是打开配置文件/etc/vsftpd/vsftpd.conf,找到chroot_local_user=YES这个配置,默认是注释的,这里去掉注释,表示只让用户在自己的目录里面活动,如果只是保存这一个配置的话,用ftp连接客户端会返回500 OOPS: vsftpd: refusing to run with writable root inside chroot()的错误,即禁止运行在可写的家目录中,因为刚才ftp_test这个目录有w权限,而现在我们使用的vsftpd版本是3.0.2 属于比较新的版本,为了安全性做了一些限制,如果你此时想通过 chmod a-w /home/ftp_test 来去掉目录的写权限,那么连接成功是没问题的,但是无法上传文件了,所以网上很多说修改权限的方法是不可取的,正确的做法是应该在下面添加一行配置allow_writeable_chroot=YES表示允许对家目录的写权限,具体配置如下:

配置完这两项以后保存退出,然后执行 systemctl restart vsftpd.service 重启vsftpd服务,现在重新使用ftp连接就成功了,并且任何操作也是没问题的

现在可以看到上面的路径是一个/,对于ftp用户来说也就是根目录了,只能在这个目录下操作,而无法跳出这个目录
以上就是vsftpd服务的基本搭建过程,实际使用时可以分配多个用户

你好,

  1. 安装ftp软件,以Ubuntu为例,apt install vsftpd

  2. 开启ftp,sudo systemctl start vsftpd 和sudo systemctl enable vsftpd前者是启用vsftpd服务,后者是将其加入开机自启

  3. 配置ftp服务器,sudo vi /etc/vsftpd.conf

将下面的改成自己需要的

anonymous_enable=NO             # 关闭匿名登录

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

write_enable=YES        # 启用可以修改文件的 FTP 命令

local_umask=022             # 本地用户创建文件的 umask 值

dirmessage_enable=YES           # 当用户第一次进入新目录时显示提示消息

xferlog_enable=YES      # 一个存有详细的上传和下载信息的日志文件

connect_from_port_20=YES        # 在服务器上针对 PORT 类型的连接使用端口 20(FTP 数据)

xferlog_std_format=YES          # 保持标准日志文件格式

listen=NO               # 阻止 vsftpd 在独立模式下运行

listen_ipv6=YES             # vsftpd 将监听 ipv6 而不是 IPv4,你可以根据你的网络情况设置

pam_service_name=vsftpd         # vsftpd 将使用的 PAM 验证设备的名字

userlist_enable=YES             # 允许 vsftpd 加载用户名字列表

tcp_wrappers=YES        # 打开 tcp 包装器


配置 VSFTPD ,基于用户列表文件 /etc/vsftpd.userlist 来允许或拒绝用户访问 FTP。注意,在默认情况下,如果通过 userlist_enable=YES 启用了用户列表,且设置 userlist_deny=YES时,那么,用户列表文件 /etc/vsftpd.userlist 中的用户是不能登录访问的。但是,选项 userlist_deny=NO 则反转了默认设置,这种情况下只有用户名被明确列出在 /etc/vsftpd.userlist 中的用户才允许登录到 FTP 服务器。

配置好之后用sudo systemctl restart vsftpd重启ftp服务就可以用了。

如果出现访问被拒绝之类的提示,尝试开放20、21两个端口。也可以在配置文件里面自定义端口(也许会更加安全)

希望对你有所帮助!

不懂请追问!

望采纳!



  • LINUX下如何开启ftp服务器?
  • 答:ftp> ls 500 OOPS: child died Connection closed by remote host.解决方法:setsebool ftpd_disable_trans 1 service vsftpd restart 就OK了!这是SELinux的设置命令,在不熟悉SELnux前,把SELinux关掉也可以的。8. 永久开启,即os重启后自动开启ftp服务 方法一:cd /etc/xinetd.d ,编辑ftp服务的...

  • 如何在linux下开启FTP服务
  • 答:vi /etc/vsftpd.ftpusers中注释掉root vi /etc/vsftpd.user_list中也注释掉root 然后重新启动ftp服务。7. vsftpd 500 OOPS: cannot change directory 登陆报错:C:\>ftp 192.168.0.101 Connected to 192.168.0.101.220 (vsFTPd 2.0.5)User (192.168.0.101:(none)): frank 331 Please ...

  • 如何在linux下开启FTP服务
  • 答:安装ftp服务端 vsftpd 不同的linux发行版,采用不同的包管理器,所以安装命令不同 ubuntu apt-get install vsftpdarchlinux pacman -S vsftpd启动 vsftpd 不同的linux发行版,有不同的系统和服务管理器,所以启动命令也不同,ubuntu service vsftpd startarchlinux systemctl start vsftpd ...

  • Linux下ftp服务器配置
  • 答:三。立即生效,重启后无效:Linuxftp如何配置被动模式?vsftpd被动模式与主动模式 VSFTP文件与目录 /usr/sbin/vsftpvsftp的主程序 /etc/rc.d/init.d/vsftpvsftp的启动脚本 /etc/vsftpd/vsftpd.confvsftp的配置文件 /etc/pamd/vsftpdPAM认证文件 /etc/vsftpd/vsftpd.ftpuser禁止使用FTP的用户 /etc/vsftpd...

  • linux的sftp服务
  • 答:echoadmin>>user_list之后通过service命令开启FTP服务:servicevsftpdstart现在就可以在本机访问FTP远程服务器了,然后通过put命令上传文件了。4SSHWindowsClientSSH提供了一个scp2.exe作为Windows下的scp命令工具。服务器拒绝了SFTP连接怎么?服务器拒绝了?看了好多,都没绝问题,最多的是:确保sftp定义在sshd...

  • 什么是Linux下的FTP命令及其功能?
  • 答:在科技日新月异的今天,Linux以其开放性和强大功能深受开发者喜爱。作为Linux生态系统的一部分,FTP(File Transfer Protocol)服务器扮演着数据传输的关键角色。今天,让我们一起揭秘Linux下FTP命令的神秘面纱,深入了解它们的工作原理和使用方法。1. FTP基本操作</首先,通过type FTP,你可以设置或查看文件...

  • Linux上安装使用FTP服务器ProFTPD的教程
  • 答:在文件/etc/proftpd.conf找到:代码如下:Port 21更改为:代码如下:Port 2121如果开启了iptables,iptables限制了所有的出站端口,加载模块ip_conntrack_ftp,这时在加载ip_conntrack_ftp模块时需要更改代理端口为2121。打开/etc/sysconfig/iptables-config,保证此文件定义加载了ip_conntrack_ftp,如:代码如下:...

  • 怎样在linux中搭建FTP服务器
  • 答:FTP服务可以根据服务对象的不同分为两类:一类是系统FTP服务器,它只允许系统上的合法用户使用;另一类是匿名FTP服务器,Anonymous FTP Server,它使用任何人都可以登录到FTP服务器上去获取文件。 5.1 选择和安装FTP服务器软件 如果你在安装LINUX系统的时候,在选择启动进程的时候选择了“ftpd”这一项的话,安装完LINUX系统...

  • 如何在linux下开启FTP服务
  • 答:tcp_wrappers=YES # 打开 tcp 包装器 配置 VSFTPD ,基于用户列表文件 /etc/vsftpd.userlist 来允许或拒绝用户访问 FTP。注意,在默认情况下,如果通过 userlist_enable=YES 启用了用户列表,且设置 userlist_deny=YES时,那么,用户列表文件 /etc/vsftpd.userlist 中的用户是不能登录访问的。但是...

  • ftplinux启动
  • 答:你如果需要FTP,你自己需要安装一个FTPSERVER端的软件才可以,你可以看看输入命令rpm-qa|grepftp看看有没有类似vsftp之类的,如果有,你可以在/etc/init.d/里找找,看看有没有VSFTP。有的话,启动一下(不要告诉我不知道如何启动,如果不知道,你需要找本书好好学习学习)如何在linux下开启FTP服务?1...

    相关内容

    首页 新知 身健
    返回顶部

    © 星空5G w.xkyn.com