如何在Ubuntu上配置虚拟主机,使一个用户只能访问一个站点

如何在Ubuntu上配置虚拟主机,使一个用户只能访问一个站点,ubuntu,virtualhost,Ubuntu,Virtualhost,谢谢你调查这件事。我想配置我的VPS服务器,使其能够承载多个站点,并且每个站点都可以通过唯一的用户帐户访问。同时,我想有一个主帐户,将有权访问所有的网站 例如,如果我有site1、site2、site3,最好有如下结构: /home/site1/ /home/site2/ /home/site3/ 其中,/home/siteX/是siteX的webroot,同时是“userX”的home目录。UserX将无法访问主目录之外的任何其他目录 理想情况下(但不是强制性的),如果每次添加新用户时都自动

谢谢你调查这件事。我想配置我的VPS服务器,使其能够承载多个站点,并且每个站点都可以通过唯一的用户帐户访问。同时,我想有一个主帐户,将有权访问所有的网站

例如,如果我有site1、site2、site3,最好有如下结构:

/home/site1/
/home/site2/
/home/site3/
其中,
/home/siteX/
是siteX的webroot,同时是“userX”的home目录。UserX将无法访问主目录之外的任何其他目录

理想情况下(但不是强制性的),如果每次添加新用户时都自动创建虚拟主机配置,那就太好了。这将是纯开发服务器,我不打算添加用户,除了访问网站


再次感谢

最好的方法是将他们的家设置为chroot

解决方案1-PLESK

使用Plesk*时,您可以直接获得此功能。许多VPS提供商都提供Plesk,通常免费提供多达10个域名,并为30100个等域名付费。 它在Ubuntu上运行得非常好

然而,使用plesk,您的用户主页不是在
/home/XX
中,而是在
/var/www/vhosts/site.com

解决方案2-CHROOT/JAILKIT

另一方面,您可能希望手动配置chrooted shell,这也不难,但设置它会占用您相当多的时间,特别是如果您不从事日常服务器管理工作的话。不过,这可能是一个简单的解决方案

解决方案3-RBASH

您还可以使用受限制的shellrbash,这是一个简单的解决方案,但可能适合您的需要,也可能不适合您的需要:



*:可能CPanel也做同样的事情。

您想如何验证您的用户?http基本身份验证可以吗?因为这将是他们的主目录,我想他们将拥有对服务器的ssh/sftp访问权限,但同样仅限于他们的目录。至于http访问,它可能受基本身份的限制,也可能不受基本身份的限制。据我所知,您不想限制对站点(通过http)的访问,而是对用户的主目录的访问,这显然不是对其vhost的1:1。是的,很抱歉我没有说清楚。通过访问文件夹,我指的是ssh\sftp访问,而不是http访问。感谢您的回答和多种解决方案。我找不到Plesk的免费版本,老实说,我也不想使用这样一个复杂的服务,因为这对我的需求来说可能是一种过度的需求。不过我查了一下Jailkit,这似乎是一个完美的解决方案。我今天会玩一会儿,看看它是否能正常工作。再次感谢。