本文将指导您如何在Linux系统中为SFTP用户设置权限,确保安全访问。
**步骤一:创建SFTP用户组**首先,创建一个专门用于SFTP用户的组:$ groupadd sftpusers登录后复制 **步骤二:创建SFTP用户**接下来,创建一个SFTP用户,并将其添加到`sftpusers`组。关键是将用户的shell设置为`/bin/false`,禁止其直接登录shell:
$ useradd -s /bin/false -G sftpusers test登录后复制 **步骤三:配置sshd_config**编辑`/etc/ssh/sshd_config`文件,找到`Subsystem`配置项,将其修改为:
Subsystem sftp internal-sftp登录后复制
在文件末尾添加以下配置,限制sftpusers组的用户只能访问其主目录:
Match Group sftpusers ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no登录后复制
保存并关闭文件。
**步骤四:设置主目录权限**将`test`用户主目录的所有者修改为`root`:chown root ~test登录后复制 **步骤五:重启sshd服务**重启sshd服务使配置生效:
$ systemctl restart sshd登录后复制 **步骤六:测试用户连接**尝试使用`test`用户进行SFTP连接:
$ sftp test@localhost登录后复制
您应该只能访问test用户的主目录。 尝试使用SSH登录将会被拒绝。
常见问题排查::
如果连接时出现“Write failed: Broken pipe”或“Couldn't read packet: Connection reset by peer”错误,这通常是由于ChrootDirectory权限问题导致的。 请确保SFTP用户主目录的所有者为root,权限设置为750或755。
本文来自投稿,不代表本站立场,如若转载,请注明出处: