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时,所有的用户均可以切换到其他目录。


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

相关文章
|
8月前
|
存储 Linux
Linux 目录名称
Linux系统目录结构简介:根目录(/)下包含各类功能目录,如/bin存放用户命令,/etc存储配置文件,/home为用户主目录,/var记录日志等可变数据,/usr存放用户工具,/tmp用于临时文件。各目录分工明确,保障系统有序运行。(238字)
345 5
|
存储 Linux Shell
Linux常见根目录详释
- **/home**:存放普通用户的主目录。 - **/root**:超级用户的主目录。 - **/tmp**:存放临时文件。 - **/mnt** 和 **/media**:用于挂载外部存储设备。 - **/boot**:存放启动Linux所需的文件,如内核。 - **/lib** 和 **/lib64**:存放系统运行时需要的库文件。 - **/opt**:存放第三方提供的可选软件包。 - **/srv**:存放服务数据,如Web服务器的数据。 这些目录构成了Linux文件系统的骨架,支持系统的正常运行和管理。
620 12
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
1247 3
|
存储 Linux Windows
linux常用目录
/sbin s就是super User的意思,这里存放的是系统管理员使用的系统管理程序。 /home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一版该目录名是以用户的账号命名的。 /root 该目录为系统管理员,也称为超级权限者的用户主目录。 /lib 系统开机所需要最基本的动态连接共享库,其作用类似于windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 /etc 所有的系统管理所需要的配置文件和子目录。 /usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program fies目录。 /bo
304 2
|
Linux 定位技术
Linux系统中的cd命令:目录切换技巧
踏过千山,越过万水,人生就是一场不断前行的旅程,总充满了未知与挑战。然而,“cd”命令如同你的旅伴,会带你穿梭在如棋盘一般的文件系统中,探索每一处未知。希望你能从“cd”命令中找到乐趣,像是掌控了一种络新妙的魔法,去向未知进发,开始你的探索之旅。
502 24
|
Ubuntu 安全 网络安全
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
871 13
|
监控 Linux
Linux基础:文件和目录类命令分析。
总的来说,这些基础命令,像是Linux中藏匿的小矮人,每一次我们使用他们,他们就把我们的指令准确的传递给Linux,让我们的指令变为现实。所以,现在就开始你的Linux之旅,挥动你的命令之剑,探索这个充满神秘而又奇妙的世界吧!
277 19
|
存储 Linux
linux中的目录操作函数
本文详细介绍了Linux系统编程中常用的目录操作函数,包括创建目录、删除目录、读取目录内容、遍历目录树以及获取和修改目录属性。这些函数是进行文件系统操作的基础,通过示例代码展示了其具体用法。希望本文能帮助您更好地理解和应用这些目录操作函数,提高系统编程的效率和能力。
490 26
|
Linux
Linux文件与目录的日常
目录的切换 一般使用(”pwd“)显示当前所在的目录 比如:当前目录是在home下面的,与用户名相同的文件夹,可以使用(”cd“)命令来切换目录; 进入下载目录(”cd home/a/下载“)这种从给目录开头的一长串路经”叫做绝对路径“; 进入图片目录(”cd .. /图片/“)".."代表当前路径的上级路径,相对于当前的目录而言的”叫做相对路径“,(”.“)代表当前路径; 如果,想快速切换,上一个所在目录可以(”cd - / cd..“); 如果,想快速切换,追原始的目录可以(”cd --“); 查看目录及文件
208 14
|
Linux
Linux目录删除指南:彻底解决“Is a directory”错误
在 Linux 系统中遇到 `cannot remove 'xxx': Is a directory` 错误,是因为删除目录时未使用正确参数。解决方法包括:1) 使用 `rmdir` 删除空目录或 `rm -r` 删除非空目录;2) 检查并调整目录权限(如通过 `sudo` 提权);3) 处理特殊场景,例如文件属性异常、特殊字符或进程占用;4) 替代方法如 `find -delete` 或文件系统修复。操作前建议备份数据,并启用防误删功能(如 `alias rm='rm -i'`)。掌握 `rm` 和 `rmdir` 的区别是关键。
1957 1