在我们的实验室,我们有不同的博士生(如我)处理好几种服务。 波动很大,人们在他们的研究职责旁边做这项工作。 到目前为止,服务运行在不同的机器上,具有不同的操作系统设置,可能导致pipe理很快。
我们想巩固我们的服务设置。 我们的主要想法是,负责服务的人不应该再干预底层系统。 除了像NFS和Kerberos这样的核心系统之外,一个典型的服务已经可以作为非root用户运行了。 我在谈论Apache,MySQL,颠覆,与openxchange邮件,等等。 redirect特权端口也不成问题( 来源 )。
剩下的是服务的configuration及其有效载荷。 我们设想的一种情况是,每个服务都有自己的用户和主目录,可由相应的pipe理员访问。 服务的备份和回退很容易,因为服务运行所需的一切都在一个地方。
谢谢你的任何build议!
我有时想到你想做什么,但最后我总是回到sudo。 我认为在Linux本地很难达到这个目标,也许有一些使用SElinux。 看这篇文章:
http://www.ibm.com/developerworks/linux/library/l-rbac-selinux/
不是很容易,但有趣。 也许更容易使用solaris和它的可能性。 将服务configuration文件移动到其他某些目录时,当您必须更新软件包时,它会变得很糟糕。 在这种情况下,最好的办法是重新包装软件并更改目标目录。
运行系统范围的apache2安装应该不会太困难,每个用户的域configuration都在自己的目录中。
对于mysql也一样,许多用户可以使用相同的mysql服务器,而不会碰撞弯头,如果需要的话,mysql可以在用户自己的目录下运行非特权。
对svn没有太大的把握,但是我认为这将是另一种可以运行非特权服务器的情况,或者是使用自定义用户configuration的系统范围安装。
邮件和交换可能是一个完全不同的问题。 不熟悉openexchange,但是像postfix这样的邮件服务器可以在用户家中configuration为chroot,运行在非特权端口上。
对于apache2和自定义的用户文件,所有你需要的是一行:
Include /home/*/httpd/
在你的系统范围的Apacheconfiguration。 这将允许用户有一个目录~/httpd/他们可以把他们的configuration文件为他们自己的VirtualHosts,等等。