AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 424434
Accepted
Tom Marthenal
Tom Marthenal
Asked: 2012-09-05 23:54:22 +0800 CST2012-09-05 23:54:22 +0800 CST 2012-09-05 23:54:22 +0800 CST

为一个帐户创建多个 SFTP 用户

  • 772

我正在将老化的共享托管系统迁移到更现代的技术。现在,普通的旧式不安全 FTP 是客户访问其文件的唯一方式。

我计划用 SFTP 替换它,但我需要一种方法来创建对应于一个 UNIX 帐户的多个 SFTP 用户。一位客户在机器上有一个帐户(例如customer),其主目录如/home/customer/.

我们的客户习惯于为他们的域创建任意数量的 FTP 帐户(分发给不同的人)。我们需要与 SFTP 相同的功能。

我的第一个想法是使用 SSH 密钥并将每个新“用户”添加到authorized_keys,但这让我们的客户感到困惑,他们中的许多人在技术上并不倾向并且更愿意坚持使用密码。

SSH 不是问题,只有 SFTP 可用。我们如何创建多个 SFTP 帐户(customer、customer_developer1、customer_developer2等),这些帐户都具有等效功能并且不干扰文件权限(理想情况下,所有文件都应保留customer为它们的所有者)?

我最初的想法是某种 PAM 模块,但我不清楚如何在我们的限制范围内完成它。如果 OpenSSH 不适合我们的情况,我们愿意使用替代的 SSH 守护进程;同样,它只需要支持 SFTP 而不是 SSH。

目前我们的 SSH 配置附加了这个,以便将用户关在他们自己的目录中:

# 所有客户都有组 'customer'
匹配组客户
    ChrootDirectory /home/%u # 主目录中的监狱
    AllowTcpForwarding 否
    X11转发没有
    ForceCommand internal-sftp # 强制 SFTP
    PasswordAuthentication yes # 对于非客户帐户,我们使用密钥代替

我们的服务器运行的是 Ubuntu 12.04 LTS。

linux
  • 3 3 个回答
  • 11356 Views

3 个回答

  • Voted
  1. Best Answer
    Tom Marthenal
    2012-09-10T01:13:43+08:002012-09-10T01:13:43+08:00

    我们的解决方案是为每个客户创建一个主用户帐户,例如flowershop。每个客户都可以使用自己的密码创建任意数量的副账户flowershop_developer,例如他们需要删除他们的 DBA 帐户,他们可以轻松地做到这一点而无需更改自己的密码)。flowershop_testerflowershop_dba

    这些帐户中的每一个都在flowershop组中,主文件夹为/home/flowershop/. SSH 使用它作为 chroot 目录(/home/%u,如问题中的配置所示)。

    然后,我们使用 ACL 使组flowershop中的每个用户都可以修改所有文件。创建新客户帐户时,我们将 ACL 设置如下:

    setfacl -Rm \
    d:group:admin:rwx,d:user:www-data:r-x,d:user:$USERNAME:rwx,d:group:$USERNAME:rwx,\
      group:admin:rwx,  user:www-data:r-x,  user:$USERNAME:rwx,  group:$USERNAME:rwx \
    /home/$USERNAME/
    

    这将执行以下操作:

    • 给组admin(对我们来说,托管服务提供商)rwx
    • 将用户www-data(Apache)r-x授予文件*
    • 给用户$USERNAME rwx文件
    • $USERNAME rwx给文件分组

    这种设置似乎对我们来说效果很好,但我们愿意接受任何改进建议。

    * 我们使用 suexec 作为客户帐户运行 CGI/PHP

    • 4
  2. jigs
    2013-09-06T20:33:34+08:002013-09-06T20:33:34+08:00

    不确定上述解决方案如何帮助解决 Op 的问题。如果 flowershop_developer 登录,他将被 chroot 到/home/%u ie/home/flowershop_developer目录。其他用户也是如此。

    /home/flowershop如果他们被关在自己的主目录中,他们怎么能看到目录的内容呢?

    希望我没有遗漏如此微不足道的事情。我有一个使用mount -o绑定选项的工作解决方案,它允许我在其中安装/home/flowershop,/home/flowershop_developer但希望有一个更简单和优雅的解决方案。

    • 1
  3. Ansgar Wiechers
    2012-09-06T05:02:57+08:002012-09-06T05:02:57+08:00

    我不确定你所说的“等价物”是什么意思。所有帐户都应该有自己的主目录吗?在那种情况下,只需创建具有个人主目录的个人帐户。还是所有帐户都应该共享同一个主目录?这可能不是一个好主意,但您可以创建具有相同主要(或补充)组的所有帐户,并使用ACL来处理权限。

    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve