FTP的基本操作

我们在Linux系统中为了让指定的用户或者其他用户访问系统中的目录,或者限制其访问哪个目录,并可以通过FTP进行连接,下载上传一些资源下面对一些设置进行简单的说明

下载vsfypd

[root@bogon ~]# yum -y install vsftpd

开启vsftpd

[root@bogon ~]# systemctl start vsftpd

关闭防火墙

[root@bogon ~]# systemctl stop firewalld.service
[root@bogon ~]# setenforce 0

开启服务

systemctl start vsftpd.service

测试一下能否登录FTP了,先安装一个ftp客户端组件。

yum -y install ftp
尝试登录一下
ftp localhost

输入用户名ftp,密码随便(因为默认是允许匿名的)

登录成功,就代表ftp服务可用了。

但是,外网是访问不了的,所以还要继续配置

取消匿名登录

vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES ,改为NO
重启服务
systemctl restart vsftpd.service

创建一个组,用于存放ftp用户

groupadd ftpgroups

创建ftp用户,并加入ftpgroups组,/home/ftp是自己建的目录,不存在就自己创建一个

useradd -d /home/ftp/ftptest -g ftpgroups ftptest

设置密码

passwd ftptest

设置不允许用于用户登录

usermod -s /sbin/nologin ftptest

查看用户

[root@localhost vsftpd]# ls /home/ftp
ftpn ftptest

重启服务

systemctl restart vsftpd.service

登录一下看,可以登录了,但是发现也能访问上层目录,甚至根目录,这不是我们希望的,修改一下配置文件让其只能访问自身目录

vi /etc/vsftpd/vsftpd.conf
将下面语句解除注释去掉

chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

另外,从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列项:

allow_writeable_chroot=YES

好了,这样就只能访问自身所属目录。

如果希望某个用户可以访问根目录,把用户名加入

/etc/vsftpd/chroot_list
不存在就创建这个文件,一行一个用户名。

如果还是登陆不了ftp,那很有可能是selinux的问题,这个东西把他关掉就行

vi /etc/selinux/config
SELINUX=enforcing 设置成SELINUX=disabled
重启一下服务器
reboot
重启完了别忘了把vsftpd服务打开,默认是自启的。
如果连接不上,很可能是防火墙阻止了,尝试关闭防火墙

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
总结
如果不想让匿名登陆

anonymous_enable=no

如果所有人都有上传权限(需结合文件权限)

write_enable=yes
[root@bogon home]# chmod 777 /var/www/html //将目录权限设置成777
[root@bogon home]# ll -d /var/www/html //查看权限

如果设置某个用户有上传权限

利用acl

某些用户有上传权限

root@bogon home]# setfacl -m u:zhangsan:rwx /var/www/html

设置某个用户登录之后的主目录
修改用户的家目录

[root@bogon vsftpd]# mkdir /home/test
[root@bogon home]# chown ftpuser.ftpuser /home/test
[root@bogon home]# usermod -d /home/test ftpuser
[root@bogon home]# usermod -d /var/www/html ftpuser

如何让一个ftp用户不能登陆,但是能改密码

[root@bogon vsftpd]# usermod -s /sbin/nologin ftpuser
[root@bogon vsftpd]# usermod -s /usr/bin/passwd ftpuser

你可能感兴趣的:(linux)