如何更改 SFTP 默认目录

Jon*_*n B 6 sftp proftpd

使用proftpd您可以更改默认目录编辑/etc/proftpd.conf
DefaultRoot ~
更改为
DefaultRoot ~/music

我如何使用SFTP达到相同的结果?

顺便说一句,我使用的是 ubuntu lucid。

非常感谢您的帮助。

小智 23

不幸的是,我没有足够的声誉来发表评论,因为我只想强调 Richard Fairhurst 的评论有多重要,以及应该如何将其添加到“官方答案”中。我在这里和其他地方看到有人在设置用户主目录或将用户主目录作为“默认目录”时遇到问题。那只是因为在 chroot 环境中,根目录不再是 / 了。这意味着任何其他路径都应该相对于新的根路径。前任:

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

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

Subsystem sftp internal-sftp
Match Group sftpusers
    ChrootDirectory /mnt/sftp
    ForceCommand internal-sftp -d /default
Run Code Online (Sandbox Code Playgroud)

/default 是 /mnt/sftp 中的一个目录。请注意,这里的路径再次相对于新根。


use*_*517 8

看看这篇文章,它展示了如何使用 sshdChrootDirectory强制特定组的所有成员进入公共目录根目录。您可以对其进行修改以满足您的要求。


小智 5

也许有一种方法可以实现您想要的,但据我所知,sftp 是通过 ssh 操作的,所以不太确定如何使用 ssh 为每个用户执行此操作。

但是,解决您想要做的事情的一种方法是您可以更新用户数据以登录到特定目录,如下所示。这将 w

$ sudo usermod -d [certain path that you want to direct] username
Run Code Online (Sandbox Code Playgroud)