如何更改SFTP默认目录

proftpd你可以改变默认目录编辑/etc/proftpd.conf
DefaultRoot〜
改成
DefaultRoot〜/音乐

我怎样才能达到与SFTP相同的结果?

即时通讯使用Ubuntu的清醒顺便说一句。

非常感谢你的帮助。

看看这篇文章,它展示了如何使用sshd的ChrootDirectory强制特定组的所有成员进入一个通用的目录根目录。 您可能可以修改它以符合您的要求。

不幸的是,我没有足够的评论来评论,因为我只想强调Richard Fairhurst评论的重要性,以及如何将其添加到“官方答案”中。 我看到这里和其他地方的人在设置用户主目录或将用户主目录设置为“默认目录”时遇到困难。 这只是因为在chroot环境下根目录不是/以上。 意思是任何其他path应该是相对于新的根path。 例如:

如果你chroot到/ home并且希望默认目录是/ home / default,你应该把用户主目录设置为/ default。 不是/ home,因为/ home会是新的/。

如果您确实需要将用户主目录保留在/ home / user中,但希望为sftp会话设置默认目录,则可以对internal-sftp使用-d参数。 像这个例子一样:

 Subsystem sftp internal-sftp Match Group sftpusers ChrootDirectory /mnt/sftp ForceCommand internal-sftp -d /default 

/ default是/ mnt / sftp中的一个目录。 注意这里的path又是相对于新的根。

也许有办法达到你想要的,但据我所知,sftp是通过ssh操作的,所以不太清楚如何用ssh为每个用户做到这一点。

然而,解决你想要做的一个方法是你可以更新用户数据来login到特定的目录,如下所示。 这将w

 $ sudo usermod -d [certain path that you want to direct] username 

拉恩的回答是有帮助的,但为了更明确,而不是依赖于一个链接(所以我可以find下一次):

在networking上search ChrootDirectory ,获取基本的文档和设置,我不会在这里复制它们,只指出如何解决问题。

对于一个专门的文件服务器使用: Match Group *,!sudo所以任何不是pipe理员的人都只能访问chroot sftp。

设置ChrootDirectory /home/%u – chroot基于用户名,而不是他们的主目录

确保/ home中的用户目录属于root:root

将/ etc / passwd中的主目录path设置为默认login的目录 – 但是使其相对于chroot目录:

如果你想用户acnt最终在/ home / acnt / files /中,那么把passwd home设置为/ files

确保/ home / acnt / files属于acnt:acnt,以便用户可以写入目录,即使/ home / acnt /必须由root拥有,chroot jail才能正常工作。

我刚刚通过Ubuntu Lucid 10.04安装完成了相同的操作。 答案似乎是chroot某些login到特定的文件夹。 唯一的缺点是它们被chrooted到的文件夹必须由root:root拥有,并且不能被login的用户写入,以便ssh允许sftplogin工作。 所以他们只能访问chroot所在文件夹内的其他文件夹。

http://ubuntuforums.org/showthread.php?t=1057657

此外,使用“usermod -d”设置用户的默认文件夹不会更改该用户在sftplogin时转到root /文件夹的默认文件夹。

如果您使用的是ProFTPD,那么请查看ProFTPD SFTP模块 。