linux 系统的多用户概念怎么理解?

如题所示,最近在自学 linux 系统的相关结构,读到了以下的内容
image.png

我的电脑是 mac 也是类 unix 的系统,但是在日常使用的时候,我并没有感觉到这些 “多用户” 的概念。

问题1:所谓的“多用户”该怎么去理解?
问题2:用户组又是什么?

阅读 1k
avatarAI BotBETA

问题1:所谓的“多用户”该怎么去理解?

在Linux系统中,“多用户”的概念是指允许多个用户同时登录和使用系统资源。这与单用户系统形成对比,单用户系统在同一时刻只能由一个用户使用。多用户系统的优势在于可以提高系统的使用率和资源利用率,多个用户可以同时进行不同的任务,如编辑文档、运行程序等。

为了实现多用户同时登录,Linux系统采用了用户账号和会话管理的方式。每个用户都有自己的用户账号,用于标识和管理用户。当用户登录时,系统会为其创建一个会话,该会话包含了用户执行任务所需的资源、环境等。多个会话可以同时存在,从而实现多用户同时登录。

在Linux系统中,每个用户都有自己的主目录、配置文件等,这些文件和目录与系统全局的文件和目录分开管理。这使得每个用户都有自己的工作空间,互不干扰。

总之,“多用户”的概念是指允许多个用户同时登录和使用系统资源,每个用户拥有自己的工作空间,互不干扰。

问题2:用户组是什么?

在Linux系统中,用户组是一种将多个用户归入一个组的方式。每个用户可以属于一个或多个用户组。用户组的主要目的是对用户进行分组管理,以便于权限分配和资源共享。

用户组具有以下特点:

  1. 同一组内的多个用户可以共享相同的文件和目录权限。例如,如果一个文件属于某个组,那么该组的所有用户都可以读取、写入和执行该文件。
  2. 管理员可以将权限分配给组而不是单个用户,以便于批量管理。例如,可以将某个目录的写入权限分配给某个组,而不是单个用户。
  3. 用户可以在不同的组之间切换,以便于访问不同组的资源。例如,一个用户可以在一个组中访问文件,而在另一个组中访问另一个文件。

总之,用户组是一种将多个用户归入一个组的方式,以便于权限分配和资源共享。

1 个回答

这里就是 macOS 上的 多用户/群组 管理,不过这不是“完整”的群组和用户管理,完整的可以在/etc/passwd 和 /etc/group 里面看到。
一些桌面发行版通常为了方便普通用户使用,会把一些不太相关的东西隐藏起来(因为绝大多数情况下,一台电脑通常只会有一个真实的用户在使用)。另外windows上也有多用户和组的概念在里面。

image.png

image.png

可能可以从两个方向理解这个“多用户”:

  1. 字面意思上的“多用户”,可能可以算是一个“历史遗留问题”。以前的计算机作为一个价值昂贵并且数量有限的资源。所以早期在设计操作系统的时候,就考虑到了多个用户共享同一台计算机的情况,”多用户“的设计就诞生了。这里的”多用户“,就是指的多个用户同时通过远程终端连接服务器,他们各自有各自的工作目录,可以执行自己的程序,可以做到互不干扰。
  2. 现在上面说的多个”用户“的场景其实很少了,现在比较多的情况是这样的:就是在一个服务器上,不同的服务,可能会使用不同的用户角色来运行,这里的目的主要是为了控制程序的权限,因为系统里面每个用户都有自己的权限和访问范围。比如图片里面的sshd/mysql/mailman...这些用户,都能对应到服务器里面实际的程序。

用户组是什么:
就是一个分类的机制。
比如现在服务器上有10个用户,现在有个需求是,让这10个用户都能对一个文件进行读写。
现在的情况是,一个文件,它只能被一个用户拥有,所以这种就矛盾了。

如果现在有“组”这个概念的话,就可以把这10个用户都加入到一个用户组里面,然后把这个文件的权限设置为“组”可以读写,这样属于这个组下的10个用户就都有相同的权限了。


撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏