前面的内容中曾多次提到过,Linux操作系统是一个多用户、多任务的操作系统,可以同时允许多用户登录并使用,为解决多用户之间的权限问题,Linux操作系统提供了完善的用户及用户组管理功能。
用户及用户组的概念
Linux操作系统允多用户同时登陆,每个用户都需要有自己的“隐私空间”,未经允许其他用户不能访问或修改文件内容。而对于一个团队来说,许多文件或目录是共享在“公共空间”的,用户属于该团队时,就可以访问共享的文件,而不在该团队的用户,则不可以访问,因此产生了用户组。
Linux操作系统中,可以包含多个用户组,比如用户组1和用户组2;每个用户组可以包含多个用户,比如用户组1包含有用户A和用户B;每个用户可以属于多个用户组,比如用户A可以同时属于用户组1和用户组2。
通常用户与用户、用户组与用户组之间未经允许并不能访问或修改其他人的文件或目录,但是root用户作为Linux操作系统的终极管理员,可以查看并修改任何用户、用户组的文件内容,所以在使用root账户时需要特别小心,尤其要防止误删系统文件,造成系统崩溃。
用户标识符
当登录Linux操作系统时,需要输入用户名和密码,账号名称是在创建用户时指定的一串英文字符,以方便用户记忆。而在Linux操作系统中,会给该账号分配一个唯一的数字ID进行存储。该ID号和账号名称是一一对应的,该ID号被称为UID(UserID)。类似的每个用户组也都有属于自己的用户组ID,称为GID(GroupID)。账号和ID对应的关系存储在“/etc/passwd”和“/etc/group”两个文件中。可以通过查看这两个文件来确定用户的ID号,如下所示。
#查看用户组GID
os@tedu:~$ cat /etc/group
root:x:0:
......省略
avahi:x:122:
colord:x:123:
geoclue:x:124:
gdm:x:125:
#名为os的用户组的ID号为1000
os: x: 1000:
#用户组名 密码 GID
sambashare:x:126:os
#查看用户UID
os@tedu:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
......省略
gdm:x:120:125:Gnome Display Manager:/var/lib/gdm3:/bin/false
#名为os的用户ID号为1000,注意和用户组的区别
os: x: 1000: 1000:OS,,,:/home/os:/bin/bash
#用户名 密码 ID GID
cups-pk-helper:x:121:116:user for cups-pk-helper service,,,:/home/cups-pk-helper:/usr/sbin/nologin
在前面内容中,经常会用到“ls -l”命令来查看文件的属性,其中属性中包含了用户和组名称,实际上在保存文件属性时,这两项内容保存的是UID及GID两项数字,而不是用户名或用户组名,在显示属性时,系统会查询“/etc/passwd”和“/etc/group”两个文件,将UID和GID翻译成相对应的用户名和用户组名显示。
网友评论