如何将用户限制为一个文件夹,而不允许他们移出其文件夹


28

我在digitalocean上有ubuntu服务器,我想在我的服务器上为某人提供一个用于其域的文件夹,我的问题是,我不希望该用户看到我的文件夹或文件,也不希望能够移出他们的文件夹。

如何限制该用户在其文件夹中,而不允许他移出并查看其他文件/目录?


为此,您可能需要使用单独的用户帐户。
Martin von Wittich 2015年

或者也许是Jailkit
FloHimself

chmod并不是很好的解决方案,因为在他移出文件夹之前,我无法将其用于服务器中的所有文件夹
Badr 2015年

实际上我对分组一无所知,因为我以前没有使用过分组,您能不能向我解释一下分组的好处?
badr 2015年

Answers:


26

我通过这种方式解决了我的问题:

创建一个新组

$ sudo addgroup exchangefiles

创建chroot目录

$ sudo mkdir /var/www/GroupFolder/
$ sudo chmod g+rx /var/www/GroupFolder/

创建组可写目录

$ sudo mkdir -p /var/www/GroupFolder/files/
$ sudo chmod g+rwx /var/www/GroupFolder/files/

把他们都给新组

$ sudo chgrp -R exchangefiles /var/www/GroupFolder/

之后,我转到/etc/ssh/sshd_config并添加到文件末尾:

Match Group exchangefiles
  # Force the connection to use SFTP and chroot to the required directory.
  ForceCommand internal-sftp
  ChrootDirectory /var/www/GroupFolder/
  # Disable tunneling, authentication agent, TCP and X11 forwarding.
  PermitTunnel no
  AllowAgentForwarding no
  AllowTcpForwarding no
  X11Forwarding no

现在,我要将带有奥巴马名称的新用户添加到我的组中:

$ sudo adduser --ingroup exchangefiles obama

现在一切都完成了,因此我们需要重新启动ssh服务:

$ sudo service ssh restart

注意:用户现在无法在file目录中执行任何操作, 我的意思是他的所有文件都必须位于文件文件夹中。


1
我将用户切换为sudo su - obama,但仍然可以看到其他人的文件@badr
alper

11

限制是一个明智的问题,必须一致定义。您可以做的是为用户定义一个受限制的外壳程序作为其默认外壳程序

例如,在中,将/bin/rksh(受限的kornshell)设置为用户的默认外壳,而不是用户的预定义外壳/etc/profile

注意:如果您的系统上不存在具有该名称的可执行文件,则创建一个硬链接ln /bin/ksh /bin/rkshksh并根据其名称确定是否受限制。

所述受限制的壳将(例如)防止做一个cd命令,或指定与命令/的调用(显式路径),并且它不允许改变PATHSHELLENV可变的,并且也禁止输出重定向。

可以仍然提供预定义的 shell脚本,将(在脚本执行者控制!)允许用户在一个不受限制的环境中运行该脚本具体(S)的用户。


这个答案将是比建立一个chroot环境,让我有更简单的上投它。
Azhrei 2015年

5

该命令chroot允许您为用户创建受限根目录,此问题解释了其概念chroot以及如何使用它。

更新:搜索在数字海洋上设置的chroot监狱,带来了针对其环境的进一步文档。我认为这是与您可能需要的一对有关的夫妇。

如何配置Chroot环境以在Ubuntu 12.04 VPS上进行测试

如何允许受限的SSH访问chroot入狱的用户

这里有一个它涉及到jailkit,这FloHimself建议。


是的,他们解释了它,但没有解释如何使用,我赞扬地尝试了一下,但是得到的是:chroot:无法运行命令“ / bin / bash”:没有这样的文件或目录
Badr

1
没错,但是现在您听说过chroot监狱了,您可以做更多的研究,我已经更新了答案,其中包含指向Digital Ocean的文档的一些链接,这些链接提供了针对其环境的进一步解释。
X田
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.