linux开启FTP以及添加用户配置权限,只允许访问自身目录,不能跳转根目录

简介:

1.切换到root用户

2.查看是否安装vsftp,我这个是已经安装的。

1
2
[root@localhost vsftpd] # rpm -qa |grep vsftpd
vsftpd-3.0.2-11.el7_2.x86_64

3.如果没有发现,则安装。

1
yum  install  vsftpd* -y

4.启动vsftpd服务,以及重启命令(centos7.0以上版本)

1
2
[root@localhost vsftpd] # /bin/systemctl start vsftpd.service
[root@localhost vsftpd] # /bin/systemctl restart vsftpd.service

低版本试一下这些命令:

1
/etc/init .d /vsftpd  restart
1
2
3
4
5
6
7
8
启动 ftp 命令  
#service vsftpd start
 
停止 ftp 命令  
#service vsftpd stop
 
重启 ftp 命令  
#service vsftpd restart

设置自启:

1
chkconfig vsftpd on

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

1
yum -y  install  ftp

尝试登录一下

1
ftp  localhost

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

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

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

6.取消匿名登录

1
vi  /etc/vsftpd/vsftpd .conf

把第一行的 anonymous_enable=YES ,改为NO

重启

1
[root@localhost vsftpd] # /bin/systemctl restart vsftpd.service

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

1
groupadd ftpgroups

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

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

设置密码

1
passwd  ftptest

设置不允许用于用户登录

1
usermod  -s  /sbin/nologin  ftptest

 

可以看到已经建好了

1
[root@localhost vsftpd] # ls /home/ftpftpn  ftptest

这时候重启一下vsftpd服务

1
/bin/systemctl  restart vsftpd.service

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

1
vi  /etc/vsftpd/vsftpd .conf

如下设置

1
2
3
4
5
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file= /etc/vsftpd/chroot_list
local_root= /home/ftpftpn

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

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

1
allow_writeable_chroot=YES

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

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

1
/etc/vsftpd/chroot_list

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

 

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

1
2
vi  /etc/selinux/config
SELINUX=enforcing            #设置成SELINUX=disabled

 

重启一下服务器

1
reboot

重启完了别忘了把vsftpd服务打开,默认是自启的。

 

如果连接不上,很可能是防火墙阻止了,尝试关闭防火墙

1
2
3
systemctl stop firewalld.service        #停止firewall
systemctl disable firewalld.service     #禁止firewall开机启动
firewall-cmd --state                    #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

如果出现远程文件夹无法显示的情况,请使用主动模式连接,在你的ftp工具上设置。

------------------------------------------------------------------------------------------------------------------------

如新建一个admin用户,若指定admin只能访问/home /uftp目录下的administer目录。则:

(1)       首先要存在administer目录,并且保证administer目录不具备可写的权限,否则将造成登录失败。可使用“chmod a-w + 目录”进行权限的修改。

(2)       “vi / etc/vsftpd.conf”,在文件末位添加local_root=/home/uftp/administer.其中administer即是限制访问的目录。

(3)       将chroot_list_enable=YES,chroot_list_file=/etc/vsftpd/vsftpd.chroot_list,注释去掉。

(4)       若没有vsftpd.chroot_list文件,则新建vsftpd.chroot_list文件:“vi / etc/vsftpd/vsftpd.chroot_list”.

(5)       在文件里添加“admin”用户。

(6)       重启ftp服务器。“service vsftpd restart”。


centos FTP 用户指定目录禁用上级目录

在默认配置下,本地用户登入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时,所有的用户均可以切换到其他目录。


1.切换到root用户

2.查看是否安装vsftp,我这个是已经安装的。

1
2
[root@localhost vsftpd] # rpm -qa |grep vsftpd
vsftpd-3.0.2-11.el7_2.x86_64

3.如果没有发现,则安装。

1
yum  install  vsftpd* -y

4.启动vsftpd服务,以及重启命令(centos7.0以上版本)

1
2
[root@localhost vsftpd] # /bin/systemctl start vsftpd.service
[root@localhost vsftpd] # /bin/systemctl restart vsftpd.service

低版本试一下这些命令:

1
/etc/init .d /vsftpd  restart
1
2
3
4
5
6
7
8
启动 ftp 命令  
#service vsftpd start
 
停止 ftp 命令  
#service vsftpd stop
 
重启 ftp 命令  
#service vsftpd restart

设置自启:

1
chkconfig vsftpd on

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

1
yum -y  install  ftp

尝试登录一下

1
ftp  localhost

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

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

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

6.取消匿名登录

1
vi  /etc/vsftpd/vsftpd .conf

把第一行的 anonymous_enable=YES ,改为NO

重启

1
[root@localhost vsftpd] # /bin/systemctl restart vsftpd.service

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

1
groupadd ftpgroups

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

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

设置密码

1
passwd  ftptest

设置不允许用于用户登录

1
usermod  -s  /sbin/nologin  ftptest

 

可以看到已经建好了

1
[root@localhost vsftpd] # ls /home/ftpftpn  ftptest

这时候重启一下vsftpd服务

1
/bin/systemctl  restart vsftpd.service

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

1
vi  /etc/vsftpd/vsftpd .conf

如下设置

1
2
3
4
5
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file= /etc/vsftpd/chroot_list
local_root= /home/ftpftpn

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

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

1
allow_writeable_chroot=YES

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

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

1
/etc/vsftpd/chroot_list

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

 

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

1
2
vi  /etc/selinux/config
SELINUX=enforcing            #设置成SELINUX=disabled

 

重启一下服务器

1
reboot

重启完了别忘了把vsftpd服务打开,默认是自启的。

 

如果连接不上,很可能是防火墙阻止了,尝试关闭防火墙

1
2
3
systemctl stop firewalld.service        #停止firewall
systemctl disable firewalld.service     #禁止firewall开机启动
firewall-cmd --state                    #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

如果出现远程文件夹无法显示的情况,请使用主动模式连接,在你的ftp工具上设置。

------------------------------------------------------------------------------------------------------------------------

如新建一个admin用户,若指定admin只能访问/home /uftp目录下的administer目录。则:

(1)       首先要存在administer目录,并且保证administer目录不具备可写的权限,否则将造成登录失败。可使用“chmod a-w + 目录”进行权限的修改。

(2)       “vi / etc/vsftpd.conf”,在文件末位添加local_root=/home/uftp/administer.其中administer即是限制访问的目录。

(3)       将chroot_list_enable=YES,chroot_list_file=/etc/vsftpd/vsftpd.chroot_list,注释去掉。

(4)       若没有vsftpd.chroot_list文件,则新建vsftpd.chroot_list文件:“vi / etc/vsftpd/vsftpd.chroot_list”.

(5)       在文件里添加“admin”用户。

(6)       重启ftp服务器。“service vsftpd restart”。


centos FTP 用户指定目录禁用上级目录

在默认配置下,本地用户登入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时,所有的用户均可以切换到其他目录。


本文转自 Mr_sheng 51CTO博客,原文链接:http://blog.51cto.com/sf1314/2073227

相关文章
|
2月前
|
存储 Linux
Linux 目录名称
Linux系统目录结构简介:根目录(/)下包含各类功能目录,如/bin存放用户命令,/etc存储配置文件,/home为用户主目录,/var记录日志等可变数据,/usr存放用户工具,/tmp用于临时文件。各目录分工明确,保障系统有序运行。(238字)
246 5
|
4月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
2月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
294 11
|
5月前
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
289 0
|
7月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
486 11
|
7月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
448 3
|
8月前
|
Linux 定位技术
Linux系统中的cd命令:目录切换技巧
踏过千山,越过万水,人生就是一场不断前行的旅程,总充满了未知与挑战。然而,“cd”命令如同你的旅伴,会带你穿梭在如棋盘一般的文件系统中,探索每一处未知。希望你能从“cd”命令中找到乐趣,像是掌控了一种络新妙的魔法,去向未知进发,开始你的探索之旅。
340 24
|
6月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
353 0
|
8月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
374 10
|
Ubuntu Linux
linux(三十六)文件和目录相关命令tree
linux(三十六)文件和目录相关命令tree
163 0