在学习文件权限管理之前要搞清楚一个问题:在Linux操作系统中为什么需要设定不同的权限,所有用户都直接使用管理员身份不好吗?不是更省事吗,为什么非得做权限管理呢?
在家庭环境中使用的计算机没必要进行权限控制,因为能接触到计算机的也就是几个自己信任的人,而且家庭中使用计算机也无非是玩游戏、浏览网页而已。在这种情况下,可以放心地让所有用户直接使用管理员身份登录。
但在企业环境下就不一样了,因为除了个人的办公电脑之外还会有服务器,企业的服务器上存放的都是非常重要的核心数据,能登录到服务器进行工作的人员也很多。假如人人都使用root账号在服务器上工作,而不做权限管理的话,那某一天有员工不小心删除了核心数据文件,可能就会导致整个企业的业务进行不下去,那损失可就大了。以笔者身边真实发生的事情为例,一个做Java开发的朋友(下文称小A)就没有这种权限管理的意识,谁要是来问他要操作系统账号,小A图省事直接就会给root账号,结果某天有一个员工不小心执行了一个危险的命令(rm-rf/),直接把服务器里所有的文件全删了,Linux操作系统当场崩溃,这就是传闻中的“删库跑路”的过程。所以,作为一名Linux运维工程师,一定要有权限管理的意识。
你或许会想:“不允许他们登录到服务器不就可以了”,只能说很难,因为技术人员或多或少都需要登录到Linux操作系统上进行工作,有的需要查看日志排查问题、有的要做测试、有的需要调整配置文件等。所以我们无论如何都绕不开权限管理这四个字,在企业中,权限管理是Linux运维工程师的一项重要工作,权限控制得好,一般就不会出什么问题,而且划分得越详细越好,最好能达到“什么样的人只允许做什么样的事情”这种程度。
对文件和目录做权限管理本质上就是对用户进行管理。大家试想一下,对文件和目录做了权限管理之后谁会去使用这些文件呢?还是用户,因此也就间接性地对用户做了权限管理。
权限管理的作用可归纳如下:
(1)维护数据的安全,什么样的人只允许做什么样的事情;
(2)通过权限的划分和管理来实现多用户、多任务的运行机制;
(3)区分层级,符合公司管理模型。
所以做权限管理可以根据不同的工作和职责需要,合理地分配用户等级和权限等级。