如何添加只有权限访问特定文件夹的ssh用户?

如何添加只有权限访问特定文件夹的ssh用户?

如何添加只有权限访问特定文件夹的ssh用户?

useradd -d /var/www/xyz.com.tr/musteri  -s /bin/bash -g sshd musteri

我创建了一个名为 的用户musteri。我设置了它的主文件夹和组。所以,我想将musteri用户集成到“/var/www/xyz.com.tr/musteri”中。我不希望它访问另一个文件夹。

答案1

听起来您希望您的 müşteriler 能够对文件夹进行文件传输访问,而不实际给他们 shell。这是一件好事,因为宾福斯指出,为人们提供具有有限访问权限的 shell 是很棘手的,因为 shell 需要访问分散在系统上的各种内容才能运行。

为了让 SFTP 访问特定文件夹,您可以执行以下操作。

  1. 向系统添加一个新组,例如“sftponly”。
  2. 添加系统上对该组应具有受限权限的任何用户。您还可以为它们提供受限制的 shell,例如 /bin/true,但这不是必需的。
  3. /etc/ssh/sshd_config使用这些行更改您的 ssh 配置文件(通常)
    子系统 sftp 内部 sftp

    比赛组 sftponly
        Chroot目录 %h
        允许TCP转发 否
        X11转发号
        ForceCommand 内部 sftp

这将激活 SSH 内部的 sftp 子系统,并强制该系统组的成员在登录时仅使用该系统。它还会将它们chroot到其主目录。您可以将其更改为其主目录的子文件夹以及类似的内容ChrootDirectory %h/musteri_sftp,以便他们无法查看其余的系统文件,但可以直接登录到其主文件夹的特殊子文件夹。

科莱明胶。

答案2

在我看来,这是非常困难的,甚至是不可能的。当用户通过 SSH 连接时,他至少需要一个 shell,在您的情况下是bash.要执行,/bin/bash他需要访问权限/binbash本身需要从/etc(例如/etc/bash.bashrc)读取一些内容,因此用户还需要访问/etc.假设用户不仅想在这个目录中闲逛,他可能想读取一个文件,但要执行例如vim他还需要访问/usr/bin.
这只是一个小小的演示,还有一些更多的依赖项,例如我真的不知道如果用户无权访问/tmp..

你应该考虑一下你的意图。您是否只想让某人对您的网络服务的一部分具有读/写访问权限?然后您可以设置诸如 FTP 之类的东西来将特定目录导出到该用户。因此他无需 SSH 访问即可读/写此文件。
另一个不错的解决方案是存储库。例如,设置一个 GIT 存储库并让用户克隆它。他可以在本地进行更改并向您发送补丁。您可以决定是否应用此补丁,回滚有问题的补丁也很容易。

相关内容