Linux权限管理的重要性
作为本章的第一节,首先要搞清楚一个问题,Linux 系统中为什么需要设定不同的权限,所有用户都直接使用管理员(root)身份不好吗?
由于绝大多数用户使用的是个人计算机,使用者一般都是被信任的人(如家人、朋友等)。在这种情况下,大家都可以使用管理员身份直接登录。但在服务器上就不是这种情况了,往往运行的数据越重要(如游戏数据),价值越高(如电子商城数据、银行数据),则服务器中对权限的设定就要越详细,用户的分级也要越明确。
和 Windows 系统不同,Linux 系统为每个文件都添加了很多的属性,最大的作用就是维护数据的安全。举个简单的例子,在你的 Linux 系统中,和系统服务相关的文件通常只有 root 用户才能读或写,就拿 /etc/shadow 这个文件来说,此文件记录了系统中所有用户的密码数据,非常重要,因此绝不能让任何人读取(否则密码数据会被窃取),只有 root 才可以有读取权限。
此外,如果你有一个软件开发团队,你希望团队中的每个人都可以使用某一些目录下的文件,而非团队的其他人则不予以开放。通过前面章节的学习我们知道,只需要将团队中的所有人加入新的群组,并赋予此群组读写目录的权限,即可实现要求。反之,如果你的目录权限没有做好,就很难防止其他人在你的系统中乱搞。
比如说,本来 root 用户才能做的开关机、ADSL 拨接程序,新增或删除用户等命令,一旦允许任何人拥有这些权限,系统很可能会经常莫名其妙的挂掉。而且,万一 root 用户的密码被其他人获取,他们就可以登录你的系统,从事一些只有 root 用户才能执行的操作,这是绝对不允许发生的。
因此,在服务器上,绝对不是所有的用户都使用 root 身份登录,而要根据不同的工作需要和职位需要,合理分配用户等级和权限等级。
Linux 系统中,文件或目录的权限信息,可以使用 ls 命令查看,例如:
由于绝大多数用户使用的是个人计算机,使用者一般都是被信任的人(如家人、朋友等)。在这种情况下,大家都可以使用管理员身份直接登录。但在服务器上就不是这种情况了,往往运行的数据越重要(如游戏数据),价值越高(如电子商城数据、银行数据),则服务器中对权限的设定就要越详细,用户的分级也要越明确。
和 Windows 系统不同,Linux 系统为每个文件都添加了很多的属性,最大的作用就是维护数据的安全。举个简单的例子,在你的 Linux 系统中,和系统服务相关的文件通常只有 root 用户才能读或写,就拿 /etc/shadow 这个文件来说,此文件记录了系统中所有用户的密码数据,非常重要,因此绝不能让任何人读取(否则密码数据会被窃取),只有 root 才可以有读取权限。
此外,如果你有一个软件开发团队,你希望团队中的每个人都可以使用某一些目录下的文件,而非团队的其他人则不予以开放。通过前面章节的学习我们知道,只需要将团队中的所有人加入新的群组,并赋予此群组读写目录的权限,即可实现要求。反之,如果你的目录权限没有做好,就很难防止其他人在你的系统中乱搞。
比如说,本来 root 用户才能做的开关机、ADSL 拨接程序,新增或删除用户等命令,一旦允许任何人拥有这些权限,系统很可能会经常莫名其妙的挂掉。而且,万一 root 用户的密码被其他人获取,他们就可以登录你的系统,从事一些只有 root 用户才能执行的操作,这是绝对不允许发生的。
因此,在服务器上,绝对不是所有的用户都使用 root 身份登录,而要根据不同的工作需要和职位需要,合理分配用户等级和权限等级。
Linux 系统中,文件或目录的权限信息,可以使用 ls 命令查看,例如:
[root@localhost ~]# ls -al
total 156
drwxr-x---. 4 root root 4096 Sep 8 14:06 .
drwxr-xr-x. 23 root root 4096 Sep 8 14:21 ..
-rw-------. 1 root root 1474 Sep 4 18:27 anaconda-ks.cfg
-rw-------. 1 root root 199 Sep 8 17:14 .bash_history
-rw-r--r--. 1 root root 24 Jan 6 2007 .bash_logout
...
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频