如何更改 SFTP 默认目录?

如何更改 SFTP 默认目录?

使用 ProFTPD 你可以更改默认目录编辑/etc/proftpd.conf

DefaultRoot ~  
change to  
DefaultRoot ~/music

我如何使用 SFTP 实现相同的结果?

我正在使用 Ubuntu Lucid。

答案1

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

答案2

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

如果您将 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 中的一个目录。请注意,此处的路径再次相对于新的根目录。

答案3

也许有一种方法可以实现您想要的,但据我所知,sftp 是通过 ssh 操作的,所以不太确定每个用户如何用 ssh 来做到这一点。

但是,解决您想要执行的操作的一种方法是,您可以更新用户数据以登录到某个目录,如下所示。这将

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

答案4

我刚刚在安装 Ubuntu Lucid 10.04 时遇到了同样的问题。答案似乎是将某些登录 chroot 到特定文件夹。唯一的缺点是,它们被 chroot 到的文件夹必须由 root:root 拥有,并且登录用户无法写入,这样 ssh 才能允许 sftp 登录工作。因此,他们只能访问被 chroot 到的文件夹中的其他文件夹。

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

此外,使用“usermod -d”为用户设置默认文件夹不会改变该用户在 sftp 登录时进入根/文件夹的默认设置。

相关内容