Anthony Smith
Anthony Smith
Venture capitalist and startup mentor for over a decade.
哥们,这么说吧,把服务器的 root 权限给别人,就跟你把你们家保险柜的密码和钥匙一起给了别人差不多。
root
是系统里权限最高的神,是“创世之神”。拥有了它,就意味着可以对服务器做任何事情,没有任何限制。
具体来说,拿到 root 的人可以:
- 看所有东西:你服务器上所有的文件、代码、客户数据、合同、财务信息……只要存着,他就能看,能拷贝走。
- 改所有东西:他可以修改你的网站代码,替换你的收款二维码,甚至偷偷删除你的核心数据。
- 删所有东西:一句
rm -rf /
(一个非常危险的命令),整个系统就没了,从删库到跑路,技术上是可行的。 - 把你踢出去:他可以改掉你的密码,让你再也登不上这台服务器,等于这台服务器从此就姓“他”了。
- 为所欲为且不留痕迹:高手拿到 root 之后,可以修改系统日志,把他来过的痕迹都抹掉,干了什么你都查不到。
我知道,在创业公司,大家讲究的是信任、敏捷、快速迭代。有时候为了图方便,直接把 root 密码给技术负责人或者核心工程师,让他赶紧把活干完。这种情况太常见了。
但是,这是一个巨大的隐患。不是说我们不信任这个工程师的人品,而是这是一个流程和安全管理的问题。
正确的做法是什么?
你应该遵循一个叫**“最小权限原则”**的东西。说白了就是“需要啥权限,就给啥权限,多的不给”。
你可以这样做:
- 给他一个普通账号:首先,为这个工程师创建一个他自己的个人账号。
- 使用
sudo
授权:sudo
是个好东西。你可以把它理解成一个“临时授权”的工具。你可以精确地配置,让他只能用sudo
去做他工作范围内需要 root 权限才能做的事。比如,你可以授权他重启网站服务、安装软件,但是不能动数据库文件,也不能修改用户密码。 - 做好操作审计:使用
sudo
的一个巨大好处是,他做的每一项需要特权的操作都会被记录下来。谁,在什么时间,用sudo
执行了什么命令,一清二楚。这既是一种监督,也是一种保护。万一哪天服务器出问题了,可以快速追溯到是谁的什么操作导致的,避免大家互相猜忌、扯皮。
总结一下:
原则上,永远不要直接共享 root 账号和密码。
信任你的伙伴,但要用专业的工具和流程来管理权限。这和人品无关,这是一个公司走向正规化的必经之路。既保护了公司的核心资产,也保护了你的工程师(万一出事了,日志能帮他证明清白,避免背黑锅)。
如果对方坚持非要 root 不可,那你需要坐下来好好聊聊了,让他说清楚到底要干什么,为什么现有的权限或者 sudo
满足不了他。如果理由不充分,那你就得掂量掂量了。