Press "Enter" to skip to content

本地开发环境搭建[七] – Centos7用户管理

我们需要一个新的用户来管理我们的项目文件,通过该用户登录ftp来实现对项目进行统一管理,本节将记录Centos7创建用户到分配权限,再到ftp登录等一系列操作。

一、创建用户

使用如下命令创建一个新用户:

二、设置该用户的密码

连续输入两次密码确认即可。

三、禁止用户登录SSH

我们只需要该用户通过ftp登录来管理项目,包括在生产环境中出于安全考虑也应该禁止用户登录SSH:

四、配置用户的家目录

我们需要创建一个用来专门存放web项目的目录作为新用户的家目录:

这样用户登录之后默认就是存放在web项目的家目录,但是我们还需要限制用户只能在其家目录中做操作,不允许跳出家目录。

编辑sshd_config文件:

找到 “ Subsystem sftp ” 这一行,修改成:

当然,开发中我们应该养成好习惯,可以先将原先的Subsystem语句注释掉,而不是直接修改。

然后添加对用户的访问限制:

如果有多个用户,复制上面三行代码修改成其他用户和目录即可。

此时通过命令重启sshd服务(systemctl restart sshd)就会发现通过ftp登录用户将只能再自己的家目录(这里是/data/wwwroot/)进行操作了。

五、可能会遇到的问题

说两个在配置过程中可能会遇到的问题:

1.重启sshd服务报错:Directive ‘UseDNS’ is not allowed within a Match block。

出现这个问题只需要将我们上面添加的对用户的访问限制三句话放到“ UseDNS no ”这句的后面任意位置即可。

2.关于新用户通过ftp登录之后无法对目录进行文件写入的问题,以及包括像ftp无法登录了等等

这些都关系到家目录的权限配置问题,或者说是ChrootDirectory主目录权限的配置问题。

  1. ChrootDirectory所指向的文件夹,属主必须是root,属组是新用户所属的用户组。
  2. ChrootDirectory所指向的文件夹到系统根路径上的所有途径文件夹,属主都必须是root,且权限不允许有群组用户写入权限,即权限最高只能为750或755,否则出现上述问题。

拿上面的例子来说:

用户:newuser 用户组:newuser, ChrootDirectory配置:/data/wwwroot/,那么wwwroot目录的所有者/组是 root/newuser,权限是755;data目录的所有者/组是root/root,权限是755.

我们用root用户在新用户的家目录创建一个项目文件夹example,并赋予相应的权限:

这样我们就可以使用newuser通过ftp进行文件上传和写入了。

Comments are closed, but trackbacks and pingbacks are open.