linux 系统下搭建ftp服务器
ftp是什么
FTP是 File Transfer Protocol 文件传输协议的英文名称,用于在Internet上控制文件的双向传输. 同时它也是一个应用程序.一般的Linux系统默认带有ftp软件或者是vsftpd
搭建ftp服务器目的
从window系统上传程序文件到linux系统的服务器里
检查安装vsftpd软件
1.要使用到的linux命令:
-
“|”: 管道,把前一个命令的结果当成后一个命令的输入
-
rpm: RPM Package Manager RPM软件包管理器 ,和 RedHat有关,
-
grep: Globally search a Regular Expression and Print 全局匹配正则搜索并打印
-
yum: Yellow dog Updater,Modified,大黄更新与修改,基于rpm 的软件包管理器
查看所有的安装的软件包 并在结果中查找包含vsftp 的文件
rpm -qa | grep vsftpd
如果没有装则使用yum命令安装
yum -y install vsftpd
登录Linux主机后,运行命令:”service vsftpd start”
要让FTP每次开机自动启动,运行命令: “chkconfig --level 35 vsftpd on”
查看vsftpd 服务的运行状态
systemctl status vsftpd
如果最后一条状态是stoped则启动vsftpd
systemctl start vsftpd
如果最后一条状态是started则重启vsftpd
systemctl restart vsftpd
停止vsftpd
systemctl stop vsftpd
2、设置FTP权限
A. 编辑VSFTP配置文件,运行命令:”vi /etc/vsftpd/vsftpd.conf “
B. 将配置文件中”anonymous_enable=YES “改为 “anonymous_enable=NO”
C. 保存修改,按ESC键,运行命令:“:wq”
这样关闭了匿名登录功能。
3、添加FTP账号
A. 运行命令:”useradd ftpadmin -s /sbin/nologin “。该账户路径默认指向/home/ftpadmin目录;如果需要将用户指向其他目录,请运行命令:useradd ftpadmin -s /sbin/nologin –d /www(其他目录)
如下:(useradd -s /sbin/nologin ftpadmin -d /usr/local/nginx/html)
B. 设置ftpadmin用户密码,运行命令:”passwd ftpadmin(ftpadmin是创建的用户名)” ; 输入两次密码,匹配成功后,就设置好了ftpadmin用户的密码了。
C.测试连接,您可以在“我的电脑”地址栏中输入 ftp://IP 来连接FTP服务器,根据提示输入账户密码。
4.配置解释
在默认配置下,本地用户登入FTP后可以使用cd命令切换到其他目录,这样会对系统带来安全隐患。可以通过以下三条配置文件来控制用户切换目录。
chroot_list_enable=YES/NO(NO)
设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。
chroot_list_file=/etc/vsftpd.chroot_list
用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。
chroot_local_user=YES/NO(NO)
用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。
通过搭配能实现以下几种效果:
①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。
linux ftp 用户不能覆盖、写入、创建文件的权限问题
设置访问权限
chown -R 用户名 ftp目录
查看当前目录用户权限,若没有写入权限则修改
chmod 755 -R 你的FTP目录