Linux 多用户系统

时间:2024-04-15 11:53:20

    Linux OS是基于Unix系统开发而来,我们知道计算机是昂贵与稀缺的资源,所以一台计算机就要满足多个用户同时使用,即多用户的系统的思想。

实现方式:通过分时共享的策略。即让多个用户可以同时使用一台计算机。该分时共享策略,使得机器即使只有一个用户,也可以同时运行多个任务,响应多个进程。

Linux多用户系统实现的必备特性:

(1)认证机制:以验证用户ID。

(2)保护机制1:以对抗bug,不让这些坏程序阻塞其他用户程序。

(3)保护机制2:以对抗恶意程序,以防它去监听其他用户的活动。

(4)审计机制:以限制分派给每个用户的资源。

 

为了确保计算机的安全,Linux内核要求使用由CPU硬件提供的特权模式;而用户程序只能运行在非特权模式下。用户程序如果想要使用底层的软、硬件资源,必须向Linux内核发出请求(中断或系统调用),在Linux内核许可后,并切入特权模式以执行。

如在ARM处理器中,CPSR(当前程序状态寄存器)使用了5个位来识别处理器的7种模式,其中两种模式就与Linux中的用户模式和内核模式相对应,其他5种模式则用来标识不同的中断或者是出错的场景。

 

用户和组:

Linux作为一个多用户的操作系统,每个用户在机器上都有一个私有空间,特别是它会拥有配额的磁盘空间,以存储文件、接收私有的mail消息等。Linux必须保证这部分私有空间只对它的拥有者是可见的(类似于银行账户,当然只能对于储户自己可见啦),而且应该确保没有用户可以使用系统应用程序来侵犯其他用户的私有空间(当然也就是不能让别人随便来动我银行账户的资金啦)。

在Linux操作系统中,所有的用户都是通过唯一的用户ID(UID->User ID)来识别的。但是如果选择与其他用户共享资料,共享的用户就应该是一个或者多个组的成员,这个用组ID(GID->group ID)来识别(几个人出钱成立了一个小公司,这个公司名就是GID,我们的钱就是共享的资源,大家都可以使用和可见)。每个文件都可与一个确切的组相关联。如:作为文件拥有者的用户对该文件的读写权限,而组中其他用户则只拥有读权限,系统内非组中的用户则没有任何权限(不可读不可写不可执行)。

超级用户:在Linux系统中,有一个特殊的用户->超级用户(root),root用户几乎可以在Linux系统中做任何事情,因为OS没有对它采取一般的防护机制,root用户可以访问系统上的每个文件,可以管理每一个正在运行的用户程序。

普通用户和超级用户的切换:在Linux命令行输入命令:su -,然后输入root用户的密码即可切换至root用户,但是建议一般情况下,不要随意使用root用户,因为root用户操作失误会导致系统文件丢失甚至系统崩溃。