我可以把 root 权限交给别人吗?

Anthony Smith
Anthony Smith
Venture capitalist and startup mentor for over a decade.

哥们,这么说吧,把服务器的 root 权限给别人,就跟你把你们家保险柜的密码和钥匙一起给了别人差不多。

root 是系统里权限最高的神,是“创世之神”。拥有了它,就意味着可以对服务器做任何事情,没有任何限制。

具体来说,拿到 root 的人可以:

  1. 看所有东西:你服务器上所有的文件、代码、客户数据、合同、财务信息……只要存着,他就能看,能拷贝走。
  2. 改所有东西:他可以修改你的网站代码,替换你的收款二维码,甚至偷偷删除你的核心数据。
  3. 删所有东西:一句 rm -rf /(一个非常危险的命令),整个系统就没了,从删库到跑路,技术上是可行的。
  4. 把你踢出去:他可以改掉你的密码,让你再也登不上这台服务器,等于这台服务器从此就姓“他”了。
  5. 为所欲为且不留痕迹:高手拿到 root 之后,可以修改系统日志,把他来过的痕迹都抹掉,干了什么你都查不到。

我知道,在创业公司,大家讲究的是信任、敏捷、快速迭代。有时候为了图方便,直接把 root 密码给技术负责人或者核心工程师,让他赶紧把活干完。这种情况太常见了。

但是,这是一个巨大的隐患。不是说我们不信任这个工程师的人品,而是这是一个流程和安全管理的问题。

正确的做法是什么?

你应该遵循一个叫**“最小权限原则”**的东西。说白了就是“需要啥权限,就给啥权限,多的不给”。

你可以这样做:

  • 给他一个普通账号:首先,为这个工程师创建一个他自己的个人账号。
  • 使用 sudo 授权sudo 是个好东西。你可以把它理解成一个“临时授权”的工具。你可以精确地配置,让他只能用 sudo 去做他工作范围内需要 root 权限才能做的事。比如,你可以授权他重启网站服务、安装软件,但是不能动数据库文件,也不能修改用户密码。
  • 做好操作审计:使用 sudo 的一个巨大好处是,他做的每一项需要特权的操作都会被记录下来。谁,在什么时间,用 sudo 执行了什么命令,一清二楚。这既是一种监督,也是一种保护。万一哪天服务器出问题了,可以快速追溯到是谁的什么操作导致的,避免大家互相猜忌、扯皮。

总结一下:

原则上,永远不要直接共享 root 账号和密码。

信任你的伙伴,但要用专业的工具和流程来管理权限。这和人品无关,这是一个公司走向正规化的必经之路。既保护了公司的核心资产,也保护了你的工程师(万一出事了,日志能帮他证明清白,避免背黑锅)。

如果对方坚持非要 root 不可,那你需要坐下来好好聊聊了,让他说清楚到底要干什么,为什么现有的权限或者 sudo 满足不了他。如果理由不充分,那你就得掂量掂量了。