如果用户通过 SFTP 登录到一台计算机,则可以使用ChrootDirectory
关键字来给人一种用户位于根目录中的错觉。但该目录只能由root
用户写入。我希望这个用户有这样的写入能力,而且 OpenSSH 似乎没有提供这个功能,除非我错过了什么?
我知道 SFTP 用户可以被授予对其中任何文件/目录的写访问权限ChrootDirectory
,但这还不够好。我希望用户还可以直接在该“根”目录下创建/删除文件,而无需创建该用户具有写访问权限的子目录的解决方法。
答案1
我的内部 SFTP 也遇到了同样的问题。我为解决这个问题所做的是:
在你的里面sshd_配置文件:
Match group sftpusers
ChrootDirectory %h
在你的里面/etc/组文件中,将您的 sftp 用户添加到sftpusers
组中(如果不存在则创建它):
sftpusers:x:6000:user1,user2
对于 ChrootDirectory,请确保您的chown
目录位于以下位置(警告-小心运行此命令的目录,确保它仅在用户登录的目录上运行,命令-R
意味着递归,所以如果有子文件夹,您不希望此命令运行包括,删除它。另外,SFTP 用户永远不应该被授予对根级系统目录(如 )的访问权限/etc
,最好在类似的目录下创建一个文件夹/usr/local/alcatraz
并授予他们访问该目录的权限):
chown -R root:sftpusers userChrootDirectory
Chmod 目录以获得您想要的权限,例如:
drwxrws---
如果您需要更多信息,请告诉我,这只是重点内容,应该可以帮助您到达您想要的位置。