SFTP(SSH File Transfer Protocol)是一种通过SSH加密实现文件传输的协议。要实现多用户管理,您需要在服务器端进行配置。以下是实现多用户管理的一些建议:
创建专用用户组: 为了更好地管理SFTP用户,您可以创建一个专用的用户组,例如sftp_users。使用以下命令创建用户组:
sudo groupadd sftp_users
添加用户并分配到专用用户组: 对于每个SFTP用户,创建一个系统用户并将其添加到sftp_users用户组。使用以下命令创建用户并将其添加到用户组:
sudo adduser username
sudo usermod -aG sftp_users username
重复此步骤以添加其他SFTP用户。
配置SSH和SFTP: 编辑SSH配置文件(通常位于/etc/ssh/sshd_config),以便为SFTP用户提供专用shell访问。在文件末尾添加以下内容:
Match Group sftp_users
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
这将限制sftp_users组的成员只能使用SFTP,并将其根目录设置为用户的家目录。同时,禁止TCP和X11转发。
设置用户家目录权限: 为了确保用户无法访问其他用户的文件,您需要设置家目录的权限。对于每个SFTP用户,执行以下命令:
sudo chown root:root /home/username
sudo chmod 755 /home/username
这将确保只有root用户可以读取、写入和执行家目录中的文件,而其他用户只能读取和执行。
创建用户可写的目录: 在用户的家目录中创建一个子目录,允许用户上传和下载文件:
sudo mkdir /home/username/uploads
sudo chown username:sftp_users /home/username/uploads
sudo chmod 775 /home/username/uploads
这将允许用户在其uploads目录中自由地上传和下载文件,同时限制对其他目录的访问。
重启SSH服务: 保存更改后,重启SSH服务以使更改生效:
sudo systemctl restart ssh
现在,您已经成功实现了SFTP多用户管理。用户可以使用其系统用户名和密码通过SFTP连接到服务器,并根据上述权限设置访问文件。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: linux周期性任务计划怎么设置