centos 安装、配置ftp和操作用户
一、安装ftp
1.检查是否安装了ftp
rpm -qa | grep vsftpd
2.若没有,则进行安装
yum install vsftpd
#开启服务
service vsftpd start
#查看进程
netstat -nltp | grep 21
3.设置vsftpd开机启动
chkconfig --level 35 vsftpd on
4.配置ftp服务器
基本信息:
vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:
vsftpd.conf 为主要配置文件
ftpusers 配置禁止访问 FTP 服务器的用户列表
user_list 配置用户访问控制
(1)修改配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO # 是否开启匿名登录
local_enable=YES # 是否允许本地用户登录
write_enable=YES # 是否允许上传
local_umask=022 # 默认的umask码
diremssage_enable=YES # 是否显示目录说明文件
xferlog_enable=YES # 是否记录ftp传输过程
connect_from_prot_20=YES # 是否确定端口传输来自20
xferlog_ftd_format=YES # 是否使用标准的ftp xferlog模式
chroot_list_enable=YES # 是否将系统用户限制在自己的home目录下
chroot_list_file=/etc/vsftpd/chroot_list # 列表不受限制的用户
listen=YES # 是否开启监听
pam_service_name=vsftpd # 服务名称
userlist_enable=YES
tcp_wrappers=YES
# 其他一些常用参数
max_client=100 # vsftpd最大支持链接数100个IP
max_per=5 # 每个IP能支持5个链接
local_max_rate=81920 # 限制传输速度
listen_address=某个IP # 绑定某个IP到vsftpd,只允许该IP访问
xferlog_file=/var/log/vsftpd.log # 日志存放位置
主要是匿名登录字段anonymous_enable
,ftp用户限制chroot_list_enable
和chroot_list_file
。
也可以把chroot_list_enable
和chroot_list_file
都注释关闭。
(2)修改selinux
这一步骤我是有疑惑的,不知道是否应该开启selinux,因为其他博客里提到如果登录不成功或者直接访问不了ftp,可以把selinux关掉的
#查看系统中关于ftp的配置
getsebool -a | grep ftp
若报错,getsebool: SELinux is disabled。则
vim /etc/selinux/config
#修改
SELINUX=1
#然后重启服务器(其实就是开启selinux的操作)
shutdown -r now 或 reboot(有root权限)
#重新执行查看系统ftp配置操作
getsebool -a | grep ftp
#修改selinux,允许用户在家目录写入数据
setsebool -P allow_ftpd_anon_write off
setsebool -P ftp_home_dir on
注意,在修改完配置后,再把selinux关闭
vim /etc/sysconfig/selinux
SELINUX=disabled
reboot
为什么/etc/selinux/config
和/etc/sysconfig/selinux
文件夹不一致?不太了解。感觉是前者配置selinux本身,后者是配置系统启动项。
二、添加ftp用户
# 创建一个用户 ftpuser
useradd ftpuser
# 设置密码,回车输入新密码和确认密码
# 也可以用 echo "javen205" | passwd ftpuser --stdin 形式修改密码
passwd ftpuser
# 设置用户主目录,不能登陆系统(注意,添加之后再设置用户属性就需要用usermod)
chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub
usermod -d /data/ftp ftpuser
usermod -s /sbin/nologin test
或者一步到位
// 指定用户 test 属于组 ftp,只能访问的目录是 /home/www/test,不能登陆系统
useradd -d /home/www/test -g ftp -s /sbin/nologin test
// usermod -s /bin/bash test - 修改用户可登录
// 设置该用户的密码
passwd test
// 把 test 加入该文件
vim /etc/vsftpd/chroot_list
删除用户
userdel ftpuser
三、访问ftp
windows 可以直接在资源管理器中,输入ftp:xx.xx.xx.xx
,然后会弹出输入账号密码,也可以直接再浏览器中访问ftp地址。
当然,ftp工具也是可以的,
访问不到,或者登录不了ftp?
访问不到
检查ftp服务是否开启
service vsftpd status`
# 若未开启,则开启
service vsftpd start
临时关闭SELinux服务setenforce 0
临时关闭防火墙
iptables -F
# 或者
service iptables stop
# 若是防火墙禁止了vsftpd服务21、22端口
/sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT
#或直接
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
#保存到系统设置中
/etc/rc.d/init.d/iptables save
登录不了ftp
检查是否配置了chroot_list,如果配置了,将当前登录账号添加进去,一行一个。
重新设置密码或者把用户删掉重新创建
结语:
对于ftp操作还是比较陌生的,之前的系统一般都是阿里云直接创建好的root用户,账号同时支持远程登录和文件操作。这次是个裸机,vsftp都是后安装的,创建的用户,只能上传和下载文件。当然把nologin设置去除就可以登录了。但是当我设置一个用户的主目录为系统根目录/
时,我并没有/root/文件的访问权限,ftp功能也受到了限制。幸好试了一下root用户,在安装了vsftp后可以直接ssh远程登录和ftp上传下载。