如何以一种用户只能访问一个站点的方式在 Ubuntu 上配置虚拟主机 [关闭]

Posted

技术标签:

【中文标题】如何以一种用户只能访问一个站点的方式在 Ubuntu 上配置虚拟主机 [关闭]【英文标题】:How to configure Virtual Hosts on Ubuntu in a such way that one user will have access to one site only [closed] 【发布时间】:2014-01-10 17:23:06 【问题描述】:

感谢您对此进行调查。我想配置我的 VPS 服务器,使其可以托管多个站点,并且每个站点都可以由唯一的用户帐户访问。同时,我想拥有一个可以访问所有网站的主帐户。

例如,如果我有 site1、site2、site3,那么理想的结构是:

/home/site1/
/home/site2/
/home/site3/

其中/home/siteX/ 是站点 X 的 webroot,同时是“userX”的主目录。 UserX 将无权访问其主目录之外的任何其他目录。

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

再次感谢!

【问题讨论】:

您想如何验证您的用户? http基本认证可以吗? 因为那将是他们的主目录,我想他们将拥有对服务器的 ssh/sftp 访问权限,但同样仅限于他们的目录。至于http访问,可能会受到基本认证的限制,也可能不会。 据我了解,您不想限制对站点的访问(通过 http),而是限制对用户的主目录的访问,这显然不是 1:1 到他们的虚拟主机。 是的,很抱歉我没有说清楚。通过访问该文件夹,我的意思是 ssh\sftp 访问,而不是 http 访问。 【参考方案1】:

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

解决方案 1 - PLESK

在使用 Plesk* 时,您可以立即使用此功能。许多 VPS 提供商都提供 Plesk,通常最多免费提供 10 个域,并为 30、100 等域付费。 它在 Ubuntu 上运行良好。

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

解决方案 2 - CHROOT/JAILKIT

另一方面,您可能希望手动配置 chrooted shell,这也不难,但设置它会占用您好几天的时间,尤其是如果您正在不在日常服务器管理业务中。不过,Jailkit 可能是一个简单的解决方案。

解决方案 3 - RBASH

您也可以使用 rbash,它是一个受限的 shell,这是一个简单的解决方案,但可能会或可能不会满足您的需求:http://www.cyberciti.biz/faq/restrict-linux-users-to-their-home-directories-only/


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

【讨论】:

感谢您的回答和多种解决方案。我找不到 Plesk 的免费版本,老实说,我真的不想使用如此复杂的服务,因为它可能对我的需求来说太过分了。不过,我检查了 Jailkit,这对我来说似乎是一个完美的解决方案。今天会用它玩一会儿,看看它是否运作良好。再次感谢。

以上是关于如何以一种用户只能访问一个站点的方式在 Ubuntu 上配置虚拟主机 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

ios视频​​上的Phonertc只能以一种方式工作

QWidgets 的“可见”属性的 QPropertyAnimation 只能以一种方式工作

Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。

Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。

安装 Apache 出现 <OS 10013> 以一种访问权限不允许的方式做了一个访问套接字的尝试

Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。