通过 SFTP 仅访问特定文件夹

通过 SFTP 仅访问特定文件夹

我有一个运行 Ubuntu Server 14.04 的 VPS。

以下是我的目录结构的选择:

/
    home/
        my_user/
    var/
        www/
            wp-content/
                themes/
                    my-theme/
                    my-theme-child/

目录的权限为 755,文件的权限为 644。

假设我雇用了一名开发人员my_user,为我开发一个主题。我希望他们能够对其主文件夹进行任何操作。我还希望他们能够读取my-theme和写入my-theme-child,但仅此而已。他们甚至不应该能够看到服务器任何其他部分的目录结构。

我读了一些资料,觉得chroot监狱可以很好地将我的开发人员保留在他们的主目录中,但我不知道如何授予他们访问权限,my-thememy-theme-child补充他们当前的访问权限。

我怎样才能实现这个目标?

答案1

这可能不太适合您的需求,但我做了类似的事情,以便让朋友向我发送文件。假设您已设置 SFTP jail,您可以执行以下操作:

1) 为这个 chrooted myuser 创建一个主目录。我这样做了mkdir /var/sftproot

2)用户主目录应归 root 所有:chown root:root /var/ftproot

3) mkdir /var/ftproot/dump(chroot jail 内) 和/var/dumpstuff(jail 外)

4)chown -R myuser:users /var/ftproot/dump并且chown -R myuser:users /var/dumpstuff(如果你想让用户拥有它)

4)mount --bind /var/ftproot/stuff/ /var/dumpstuff/

/var/sftproot 不可由 myuser 写入,但其中的子目录可由 myuser 写入。这可能限制他们使用 sftp;无 shell 访问权限。

你没有说你是否希望这个开发人员拥有 shell 访问权限,但既然他是开发人员,也许你会这么做。为此,请考虑ssh 和监狱(这是针对 Arch 的,但类似的事情可能在 Ubuntu 上也是可能的 - 我没有测试过)。

相关内容