admin 管理员组

文章数量: 887609


2024年1月23日发(作者:timeout was reached怎么解决)

linux下sftp用户权限设置条件及实现命令

在Linux下设置SFTP用户的权限,需要满足以下条件:

1. 安装和配置OpenSSH服务器:确保系统上已安装OpenSSH服务器,并进行相应的配置。可以使用apt、yum或其他包管理器来安装OpenSSH服务器。

2. 创建SFTP用户:创建一个普通的系统用户,用于SFTP访问。可以使用useradd命令创建用户,并设置密码。

3. 限制Shell访问:将SFTP用户的shell访问限制为仅允许使用SFTP服务,而不允许登录到系统的shell环境。可以修改/etc/passwd文件中的用户行(用户行的最后一列)或使用chsh命令进行修改。

4. 配置SFTP服务:编辑OpenSSH服务器配置文件(通常在/etc/ssh/sshd_config),并确保以下配置项已启用或添加:

```

Subsystem sftp internal-sftp

Match User sftp_username

ForceCommand internal-sftp

ChrootDirectory /path/to/sftp_directory

AllowTcpForwarding no

X11Forwarding no

```

- "Subsystem sftp internal-sftp" 表示使用内部的SFTP子系统。

- "Match User sftp_username" 表示匹配指定的SFTP用户名。

- "ForceCommand internal-sftp" 强制使用内部SFTP命令,禁止用户执行其他命令。

- "ChrootDirectory /path/to/sftp_directory" 将用户限制在指定的目录下,防止访问系统其他目录。

- "AllowTcpForwarding no" 禁止TCP转发。

- "X11Forwarding no" 禁止X11转发。

配置文件修改后,重启OpenSSH服务器生效。

5. 设置SFTP目录权限:确保SFTP用户对其主目录以及任何需要访问的目录具有适当的权限。可以使用chown和chmod命令设置所需的权限。

设置完成后,SFTP用户将只能通过SFTP访问指定目录,并且无法登录到系统shell环境。可以使用以下命令测试SFTP连接:

```

sftp sftp_username@server_ip

```


本文标签: 用户 命令 使用 访问 目录