话在前面的话
本人并非运维人员。只是对*nix在工作中经常会使用。并没有细化的去理解系统的安全之类的专业内容,长时间没有细致的研究服务器的机制。能引发我想讨论这个问题还是因为一大早看到一个爱好群里的一位朋友的提问:PHP开发人员登录linux服务器的权限你们如何控制?
浪里个浪,一起来畅想
至此我想到一个问题。这个权限划分其实对于老一辈的运营人员,应该首先要考虑的问题。所有服务器内的账户是第一管理,这相当于一个集体宿舍到底住进来了一位什么样的人?作为宿舍管理人员应该明确知道给这些人开放了什么样的授权
假设我们拥有一套大的建筑物,里面存在很多的小屋子,我们暂且给这些小屋子编号 101,102....1501,1502,1503...以此类推~,这编号像不想是你经常约妹子去的某酒店的房号~。 OK,至此你知道了你的建筑物里有这么多的房子,你突然发现为了维护这套大的建筑,当时的设计师为你设计了 配电房,水房,餐厅,管理工作室,杂物间,库房,车库,安控,员工休息室,健身房...等等一堆人们需要的东西。至此你的大建筑已经能够正常运作了
业务的扩展
突然有一天,你的大房子功能调整了。你的合作伙伴告诉你,他想引入一家智能麻将机系统,在大房子里增加个益智娱乐百万胡的大业务。且已经把这个业务承包给了专业的公司。你考虑到需要在大房子里单独提供一件房子给这个系统,这个房子的门禁卡需要单独设置(毕竟不能让其他的住户也来这个房子里乱弄吧)且房子的相关基础水电操作也要专门考虑,至此提供了几套方案
1、完全由你来搞定这套娱乐系统在大房子里的所有东西
2、你提供给娱乐公司这房间的门卡,他们只能在房间内拥有足够的权限进行自行设置,无法更改电源插座的电压,以及其他的东西,其他的这些权限还是由你来控制
3、提供房间门卡,同时告诉这家公司,这个门卡还授权可以去控制室进行开关这个电源,以及水啊什么的东西。
4、你告诉这公司,他的门卡可以直接进入的管理室拿取你的管理卡,管理这个大建筑内所有东西
至此如果您能看完我这一点业务没唠的文章的话,还没腹诽我这个家伙真无聊的话~ 我已经非常感谢啦。好吧,上面的啰嗦希望能让你不是太讨厌:)
转入业务思索
php 只是一个普通的应用而已,作为服务器管理人员我个人理解系统就三类用户 root , 可登陆的普通账户,不可登陆的普通账户。如果再进一步的理解。除了root其他账户的权限都是一样的...
But ... 账户的权限,其实主要是跟他对应的应用来决定的(想想我上面说的101,102...),如果某个应用对于系统来说是相当核心且重要的。那这个账户也应该是管理员应知道的。
具体的分析
作为PHP开发人员的权限,我们分析下可能存在的行为
- A、调整php环境
- B、发布代码
- C、运行脚本
- D、查看错误日志,追踪问题
- E、设置断点/埋点进行问题排渣
- F、可能会因为应用的特殊性,存在端口监察,进程追踪的需求
- G、特殊服务于系统的应用
项 | 运维管理人员 | PHP人员 |
A | 拥有 | 不建议拥有 |
B | 拥有 | 建议拥有发布系统权限即可 |
C | 不建议拥有 | 根据业务具体拥有 |
D | 进行授权 | 申请临时授权 |
E | 进行授权 | 申请临时授权 |
F | 进行授权 | 申请临时授权 |
G | 固定授权 | 稳定的权限 |
不难看出,在允许接入服务器的情形下。根据如果根据业务来细化的化。八九不离十的事上面场景了
BUT ~~ 很多职责划分很清晰的公司,这种场景是不存在的。程序猿就踏踏实实的用着开发环境吧,所有的问题都在开发环境解决,生产环境嘛~ no way ~
个人啰嗦,不喜勿喷。老习惯,文章末留名 Sports98<sports98@gmail.com>