我正在构建一个解决方案,以便让许多开发人员(可能数百名)通过 sftp 处理他们的文件,每个开发人员都被关在他们的主目录中。为了满足我们的特殊需求,我们有一个包含所有用户主目录的 samba 挂载点。
我已经开始开发以下解决方案,但遇到了一些障碍: - 我已经将 Ubuntu Lucid Server 配置为 sftp 服务器。 - 为了将用户限制在他们的主目录中(不允许他们浏览目录并查看所有其他用户的文件夹),我使用的是 mount --bind 而不是符号链接(另外一些 ftp 客户端实际上不使用符号链接)。 - 用户帐户是 sftp 服务器上的本地 unix 用户帐户(不使用目录服务或任何东西),在本地计算机上创建了一个空的主文件夹,然后我使用 mount --bind 将空文件夹绑定到 samba 共享上实际的用户主目录。
使用这个解决方案时,我遇到了几个问题,在服务器重新启动的情况下,所有 mount --binds 都会丢失,因为它们未写入 fstab。然后我在某处读到,fstab 中的最大条目数量是 400(这对我们没什么帮助)。
我想到了一个解决方案,就是编写一些内容,将挂载存储在文本文件中作为备份,然后在服务器重新启动时运行重新挂载的脚本。
我只是真的不确定整个过程,想知道是否有人对 SFTP 有更好的解决方案?(不是 FTP)
答案1
看一眼自动挂载
automount 程序用于管理 autofs(内联 Linux 自动挂载程序)的挂载点。automount 通过读取 auto.master(8) 映射来工作,并为 master 映射中的每个条目设置挂载点,从而允许在访问时自动挂载它们。文件系统会在一段时间不活动后自动卸载。
我从未将它与 Samba 服务器一起使用,因此我不确定它是否适用于 Samba 服务器。话虽如此,您似乎才刚刚开始您的项目,因此(如果有必要)更改共享主目录的方式以利用自动挂载程序从长远来看可能是一件好事。
sshd 的后续版本支持ChrootDirectory
可轻松用于 chroot sftp 会话的配置参数。