Linux系统详细步骤:创建SFTP用户并权限限制

需积分: 1 5 下载量 17 浏览量 更新于2024-08-03 1 收藏 341KB DOCX 举报
在Linux系统中,创建安全的SFTP用户并实施严格的权限控制是一项重要的运维任务。本文将详细介绍如何通过一步步操作来完成这个过程,确保只有授权的用户能在指定目录下进行SFTP访问,并且限制其他SSH登录方式。 1. 创建SFTP用户组: 首先,使用`groupadd sftps`命令创建一个名为`sftps`的用户组,用于存放所有SFTP相关的用户。这个用户组的目的是将权限统一管理。 2. 配置chroot目录: 为了限制用户活动范围,创建一个专用的chroot(受限根)目录,如`/chroot`。使用`mkdir`创建目录,然后通过`chown`和`chmod`命令分别设置所有者和权限,确保目录的安全性。如果使用root用户创建,`chown root:root`这一步可以省略。 3. 创建SFTP新用户: 使用`useradd -d /chroot -g sftps -b /chroot -s /bin/false -m msftp`命令创建新的SFTP用户`msftp`。这里的参数含义如下: - `-d /chroot`:指定用户家目录为chroot目录。 - `-g sftps`:将用户加入到sftps组。 - `-b /chroot`:设置用户的初始目录为chroot根目录。 - `-s /bin/false`:设置用户登录shell为无操作,仅允许通过SFTP访问。 - `-m`:自动创建用户主目录。 4. 设置用户权限: 为新用户设置初始密码,例如`passwd msftp`,然后使用`chage`命令禁止密码过期(`-E -1`)和设置密码永不过期(`-M 99999`)。接着,为用户及其家目录设置合适的权限: - 创建必要的子目录,如`msgpath`和`backup`。 - 使用`chown`设置目录的所有者和权限,确保webapp组对webapp相关的目录有读写权限,而备份目录保持私密性。 5. 配置sshd_config文件: 打开`/etc/ssh/sshd_config`文件,找到大约第132行,修改`Subsystem`行,将其设置为`Subsystem sftp internal-sftp`,指示sshd使用内置的SFTP服务器。接下来,在`Match`部分,添加`Match Groups sftps`和`Match User MSFTP`,以便针对sftps组或特定用户应用配置规则,如chroot限制。 6. 重启sshd服务: 更改配置后,必须重启sshd服务,使新的配置生效,可以使用`systemctl restart sshd`命令。 7. 测试SFTP: 最后,尝试使用新创建的SFTP用户连接,确保他们只能在指定的chroot目录下访问,且无法通过SSH登录。 通过以上步骤,你已经成功地在Linux系统中创建了一个受控的SFTP用户环境,为服务器资源提供了额外的安全防护。务必定期检查和更新这些设置,以确保系统的安全性。