在 Linux 系统中,SFTP 是一种比较安全的文件传输协议,它使用 SSH 协议进行传输,可以有效保护传输过程中的数据安全。在实际应用中,我们通常需要为不同的用户创建不同的 SFTP 账户来进行文件传输。本文将介绍如何在 Linux 系统中创建 SFTP 用户,以及如何配置 SFTP 服务。
1.确认系统是否支持 SFTP
在开始创建 SFTP 用户之前linux 创建sftp用户,我们需要先确认系统是否支持 SFTP 服务。通常情况下,在安装 SSH 服务时,SFTP 服务也会被同时安装。我们可以通过以下命令来检查系统是否支持 SFTP:
```bash
#检查 OpenSSH 是否已经安装
$ rpm -q openssh-server
openssh-server-7.4p1-12.el7.x86_64
#检查 SSHD 是否已经启动
$ systemctl status sshd.service
```
如果输出结果中包含"sshd.service"的信息,则说明 SSHD 已经启动,并且系统支持 SFTP 服务。
2.创建一个新用户
在开始创建 SFTP 用户之前,我们需要先创建一个新用户。我们可以使用以下命令来创建一个新用户:
```bash
#创建一个名为 testuser 的新用户,并设置密码
$ useradd -m testuser -s/bin/bash
$ passwd testuser
```
其中,“-m”表示在创建用户时自动为其创建一个家目录,“-s”表示指定该用户的默认 shell。
3.配置 SSHD 服务
在开始配置 SFTP 服务之前,我们需要先对 SSHD 进行一些必要的配置。我们可以编辑/etc/ssh/sshd_config 文件来进行配置:
```bash
#打开/etc/ssh/sshd_config 文件
$ vi /etc/ssh/sshd_config
#找到下面这行代码,并将其注释掉(如果没有这行代码linux开发培训,则不需要修改)
# Subsystem sftp /usr/libexec/openssh/sftp-server
#在文件末尾添加以下内容:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
```
以上配置意味着:
-将原本使用/usr/libexec/openssh/sftp-server 的 SFTP 子系统替换为内部子系统。
-只允许属于 sftpusers 组的用户使用 SFTP。
-将 sftpusers 组中的所有用户限制在自己的家目录中。
-禁止 X11 转发和 TCP 转发。
-强制使用内部子系统作为命令执行。
4.创建 sftpusers 组
接下来,我们需要为所有拥有 SFTP 权限的用户创建一个组。我们可以使用以下命令来创建一个名为 sftpusers 的组:
```bash
$ groupadd sftpusers
```
5.将 testuser 添加到 sftpusers 组
现在,我们将 testuser 添加到刚刚创建的 sftpusers 组中:
```bash
$ usermod -aG sftpusers testuser
```
6.设置 testuser 的家目录
由于上面的配置已经限制了 sftpusers 组中所有用户只能访问自己的家目录,因此我们需要设置 testuser 的家目录。我们可以使用以下命令来设置 testuser 的家目录:
```bash
$ usermod -d/home/testuser testuser
```
7.设置权限和所有权
为了确保 sftpusers 组中所有用户都能够正确地访问自己的家目录linux 创建sftp用户,我们需要设置相应的权限和所有权。我们可以使用以下命令来完成这个任务:
```bash
$ chown root:root /home/testuser/
$ chmod 755 /home/testuser/
$ mkdir /home/testuser/uploads/
$ chown testuser:sftpusers /home/testuser/uploads/
$ chmod 755 /home/testuser/uploads/
```
以上命令将:
-将/home/testuser 目录的所有者和组都设置为 root。
-设置/home/testuser 目录的权限为 rwxr-xr-x。
-在/home/testuser 目录下创建一个名为 uploads 的子目录。
-将 uploads 目录的所有者设置为 testuser,组设置为 sftpusers。
-设置 uploads 目录的权限为 rwxr-xr-x。
8.重启 SSHD 服务
完成以上步骤后,我们需要重启 SSHD 服务才能使更改生效:
```bash
$ systemctl restart sshd.service
```
9.测试 SFTP 连接
现在雨林木风linux,我们就可以测试一下刚刚创建的 SFTP 用户了。首先,在本地计算机上打开一个终端窗口,并输入以下命令以连接到远程服务器:
```bash
$ sftp
```
其中,“”是你服务器的 IP 地址或主机名。
输入密码后,你应该会看到类似以下内容的提示符:
```bash
Connected to .
sftp>
```
接下来,你可以输入 ls 命令查看远程服务器上当前目录下的文件列表:
```bash
sftp> ls
uploads
sftp>
```
你还可以使用 put 命令上传本地文件到远程服务器上:
```bash
sftp> put local_file_path remote_file_path
Uploading local_file_path to remote_file_path
local_file_path 100% 10KB 2.5MB/s 00:04
sftp>
```
10.总结
本文介绍了如何在 Linux 系统中创建 SFTP 用户,并对相关配置进行了详细说明。通过按照本文所述步骤进行操作,你应该能够成功地创建一个新用户并使其能够通过 SFTP 协议访问远程服务器上指定的目录。当然,在实际应用过程中还有很多其他方面需要考虑,例如如何限制上传和下载文件大小、如何实现多个用户之间共享文件等等。希望本文能够对你有所帮助!