sudoerscheme,允许有用的访问另一个web开发人员,但保留一个虚拟服务器的未来控制?

背景:虚拟专用服务器

我有一个虚拟的私人服务器,我正在寻找主办多个网站,并提供访问另一个Web开发人员。 我不在乎把太多的限制放在他身上,尽pipe我不介意将他从我将开发的服务器上的其他站点开发的站点隔离开来。

问题:保持控制

主要是我想要确保我将来保持对服务器的控制权。 我想保留创build/升级/降级和其他pipe理function,不处理networking软件的能力。 如果我让他成为pipe理员,他可以sudo su – 并成为根,并从我身上取消根本控制,例如。

我需要他不能够:

  • 拿走其他pipe理员权限
  • 更改根密码
  • 控制其他安全/pipe理function

我希望他仍然能够:

  • 安装软件(通过apt-get)
  • 重启apache
  • 访问mysql
  • configurationmysql / apache
  • 重启
  • 编辑/etc/ web开发configurationtypes文件

其他标准设置将被愉快地考虑

我从来没有真正build立一个sudoers文件,所以简单的例子设置将是非常有用的,即使他们只是有点类似于我希望在上面的设置。

编辑:我还没有最终确定的权限,所以标准,有用的sudo设置肯定是一个选项,上面的列表更多,我希望我能做的,我不知道, 可以完成的设置。 我相信,人们在某种程度上已经解决了这类问题,但是我想用一些经过testing的东西,而不是我自己生产的东西。

根据您希望允许他执行的应用程序的数量,一个选项将允许他执行命令,甚至不必sudo。 这可能会阻止你给他一个root访问权限,同时仍然允许他执行他的任务:要做到这一点,在sudoers文件中添加一行这样的行,对于每个应用程序他应该被允许:

 username ALL=NOPASSWD: /path/to/application 

编辑:虚拟机解决scheme肯定是最安全的select

如果你没有停留在Debian / Ubuntu上(你有能力改变/select你的操作系统),FreeBSD的Jail就是在这个基础上构build起来的,已经投入使用了很多年了:

http://www.freebsd.org/doc/handbook/jails.html

不幸的是,考虑到您给予他的特权,确实不是一个好方法,创build一个万无一失的configuration阻止他试图阻止您的访问。 能够编辑/ etc中的任意文件,能够安装软件几乎肯定意味着这个人将有能力绕过你用sudo设置的任何东西。

真正的问题回到物理访问。 如果你有实际的系统访问权限,那么他确实没有什么可以做的,只要简单地从livecd系统重新引导系统并修复它们就不能轻易绕过。

我相信现在大多数人都是通过设置虚拟机并在虚拟机内部进行访问来解决这类问题。 如果他们做错了什么或者出现configuration错误,那么修复事情通常会重新启动。