在上个世纪60年代贝尔实验室决定研发 Multics
操作系统之前,市面上仅有的操作系统就是 批处理系统
,这是一种只有单线程的操作系统,一次只能执行一个任务。Multics
的项目,是非常有野心的,要彻底的改变批处理操作系统这些执行模式,它其中一个重要的概念就是支持同时拥有多个用户在线
。Multics 是当时最理念先进的操作系统,融入了当时对未来所有的猜想,由于 Multics 的步子迈得实在太大,最终把整个项目彻底拖垮了。后来人的评价,当年的这个项目的难度不低于把人送到火星。
虽然 Multics 取得了失败,但是它的理念完整的继承在了 Unix
操作系统上面,也就是 Linux
的父代。
从一开始多用户就是 Linux 操作系统的一个特点。所以 Linux 对用户和权限的控制,做得是非常极致的,相比于 Windows 操作系统,大部分人可能连用户的概念都没有,开机启动就直接使用,这样是方便的,但是缺乏一定安全机制。服务器的一大根本就是安全,不同级别的用户只能执行特定的命令,管理特定的服务,一个文件针对某个用户,只能查看,或者能写入点东西都是被精确控制。
大致的划分,在 Linux 下面有三类用户。
超级用户
也就是 root 用户,它有操作 Linux 系统的一切权限,包括毁灭操作系统。普通用户
日常我们工作的用户,重要的文件会被特定的隔离,普通用户如果需要更高级的操作权限可以像 root 用户借权。虚拟用户
操作系统为了特定的进程管理自产的用户,与我们日常的操作没有太大的关联。用户的概念确实是很好的隔离了权限,增加了一层安全的防护。为了操作上的更高效率和更好的管理性,在用户的概念上面,还有另一个概念,就是用户组
。
当我们需要授权用户 a / b / c 三人拥有相同的权限时,就可以建立一个用户组,然后赋予这个组的权限,这样就具备的相同的效果。
组的关系也是很灵活的,既多个用户能同时存在一个用户组,又可以一个用户同时存在多个用户组。
用户和权限的灵活运用,是 Linux 一切操作的根本。