Linux 如何限制危险操作?

2020-07-31 12:54:46 +08:00
 zhoudaiyu
昨天有个运维哥们用 root 把一个数据文件给清了,造成了事故。平时值班的时候确实有 root 方便一些,比如变更一些代理配置,排查一些系统问题,普通用户通常权限不够。但是给了 root,而且是跳板机的 root 还是风险很大的。如果是用一台机器的 root 就申请一次,一天可能得申请很多次,领导也顶不住。有没有什么方案能避免这种情况?
3297 次点击
所在节点    问与答
26 条回复
msg7086
2020-07-31 13:01:55 +08:00
操作之前先过一下脑子就行了。

什么是危险操作?运维本身就是危险操作。你要防止危险操作,那就得把运维开了。
Yut
2020-07-31 13:02:15 +08:00
直接点的话给每个账户上 root 然后限制可以执行的命令完事,毕竟排除蓄意的可能话这样最方便
但是这个需求会出现说明你们公司的整个运维结构有问题
love
2020-07-31 13:16:27 +08:00
二个人一起操作?
charlie21
2020-07-31 13:46:28 +08:00
linux 的鉴权机制是很够的阿,你不用
felixcode
2020-07-31 13:59:39 +08:00
给普通用户,限制 sudo 权限。
Reficul
2020-07-31 14:01:46 +08:00
基于配置的不可变架构,运维的时候不能登陆机器,只能修改目标描述。
Reficul
2020-07-31 14:02:23 +08:00
描述变更再配合 Git 的版本管理以及 CodeReview 。
zhoudaiyu
2020-07-31 14:24:11 +08:00
@msg7086 那哥们当时没过脑子
@Yut 这种除了换 shell 还有别的方式吗
@love 回家值班的时候没法两人操作啊
@Reficul 你的意思是通过 HTTP 的方式吗
@felixcode 这个不错
beautwill
2020-07-31 14:30:05 +08:00
首先跳板机不应该有权限登录,可以在办公网络里设置个 ssh 代理,通过代理访问服务器。
账号的话可以创建一个只读用户和用户组,设置所有的用户都是一个用户组,这样平时只要用这个只读账号就可以查看文件、日志等操作。
Reficul
2020-07-31 14:31:31 +08:00
@zhoudaiyu

就是类似 Kubernetes/NixOS 那种声明方式的描述,只描述目标状态,怎么达到目标状态由代码决定后自动执行。
zhoudaiyu
2020-07-31 14:38:57 +08:00
@Reficul 最好是这样,但是需要开发一段时间
msg7086
2020-07-31 15:53:36 +08:00
@zhoudaiyu 那就让他过脑子呗。
很多事情在不过脑子的情况下都会出事故,所以根本问题是做改动之前要再三确认。
比如上面说的 Code Review 或者 Over shoulder 都是比较好的办法。
大家都是人类,总会翻错的,只能靠堆人力来避免一个人脑抽搞挂整个系统。
当然了,盯着的眼睛越多,效率也越低。速度和安全是不可兼得的。
你愿意让人回家值班的时候操作生产机,那必然要承受搞挂系统的风险。
你要限制危险操作,必然就没办法让运维单人及时处理事故。
msg7086
2020-07-31 15:58:21 +08:00
我司之前客服上客户生产机做复杂操作的时候,就是两个人一起做,他负责敲键盘,我坐在他旁边负责审查他的输入。他提出要做的事,我提出做法,他输入进命令行,我检查完输入后确认执行,然后他敲下回车。
这样我俩要同时脑抽才会出事故,相对来说几率就低很多。

要追求极致的话可以去看看飞航座舱管理,是无数鲜血换来的双人三人机组尽可能避免单人脑抽导致坠机的经验,我觉得还是挺有学习意义的。
ivyliner
2020-07-31 16:31:07 +08:00
作为一个资深运维, 特别不喜欢 root 操作东西. 基本上需要的时候采用 sudo.
业务基本上在业务账号上运行, 基本上 99%的导致都不需要 root 权限.
另外删东西之前, 一般先 ls 出来, 确定范围再操作.
最后脑子是个好东西.
Reficul
2020-07-31 16:43:15 +08:00
@zhoudaiyu

嗯,理想情况是这样,但是大多数情况下做不到。但是可以把它当作理想的方向
handsomeroger
2020-07-31 16:53:20 +08:00
我们是用 jumpserver 做堡垒机,上面设置了一些命令过滤器规则,比如说 rm -rf /* 就禁止任何用户使用 root 也不行
zdnyp
2020-07-31 17:43:34 +08:00
“一天可能得申请很多次” 解决不了问题,就解决提出问题的人
zhoudaiyu
2020-07-31 21:39:59 +08:00
@handsomeroger 其实 rm 都还好 可能能恢复 到是 echo 了就难了
zhoudaiyu
2020-07-31 21:41:26 +08:00
@msg7086 怎么说呢 不想给钱 只能招些基础薄弱的人 但凡有一点基础的 也不会清 dat 文件吧
cominghome
2020-07-31 21:54:53 +08:00
做好重要资料备份

运维不让拿 root 权限有点胡扯(估计只有银行金融会有动力做这种事吧),而且 sudo 并不能解决脑子发昏这个问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/694605

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX