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

前端之家收集整理的这篇文章主要介绍了linux – 为一个帐户创建多个SFTP用户前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在将老化的共享托管系统迁移到更现代的技术.现在,普通的旧不安全FTP是客户访问其文件的唯一途径.

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

我们的客户习惯于为他们的域创建任意数量的FTP帐户(向不同的人提供).我们需要与SFTP相同的功能.

我的第一个想法是使用SSH密钥,只是将每个新的“用户添加到authorized_keys,但这对我们的客户来说很困惑,他们中的许多人不是技术倾向,而是更愿意坚持使用密码.

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

我最初的想法是某种PAM模块,但我不清楚如何在我们的约束内完成这个.如果OpenSSH不适合我们的情况,我们愿意使用备用SSH守护进程;再次,它只需要支持SFTP而不支持SSH.

目前我们的SSH配置附加了它,以便在自己的目录中监禁用户

# all customers have group 'customer'
Match group customer
    ChrootDirectory /home/%u    # jail in home directories
    AllowTcpForwarding no
    X11Forwarding no
    ForceCommand internal-sftp  # force SFTP
    PasswordAuthentication yes  # for non-customer accounts we use keys instead

我们的服务器运行Ubuntu 12.04 LTS.

解决方法

我们的解决方案是为每个客户创建一个主用户帐户,例如flowershop.每个客户都可以使用自己的密码创建任意数量的副帐户,例如flowershop_developer,flowershop_tester,flowershop_dba等.这样他们就可以在不共享主帐户密码的情况下分发帐户,这有很多原因(对于例如,如果他们需要删除他们的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/

这样做如下:

>给组管理员(对我们来说,托管服务提供商)rwx
>为文件提供用户www-data(Apache)r-x *
>为文件提供用户$USERNAME rwx
>为文件提供组$USERNAME rwx

此设置似乎对我们有效,但我们愿意接受任何更好的建议.

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

原文链接:https://www.f2er.com/linux/396949.html

猜你在找的Linux相关文章