IDC资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回IDC资讯列表

Linux系统的用户和用户组有什么差别

发布时间:2020-08-07

1.用户和用户组的概念

Linux是一个多用户系统,要应用系统资源就一定要在系统内拥有合法的用户账号, Linux系统可以存在多个用户,但是需要应用唯一的用户名来区分不同的用户,同时所有非系统用户都需要设置密码才可以登录到系统。

和人类不同, Linux系统只能应用数字来记载用户。在实现上,Linux系统采用一个32位的整数来记载用户,这意味着在一套 Linux系统中最多可以记载40亿个不同的用户。这个用来区分不同用户的数字被称为 user id,简称UID。

在 Linux系统中,有三类用户,分辨是系统用户、普通用户和根用户。普通用户是 Linux的真实用户,这类用户可以通过用户名和密码登录到系统中,通常普通用户的UD大于500;系统用户是系统运行时的一些特别用户,这类用户往往不能登录到系统中,但是一些过程需要应用这类用户运行,比如系统中的htpd过程就是应用用户 apache运行的;根用户又叫root,它的UID为0,也是系统中的超级用户,拥有至高无上的权限。

除了用户之外, Linux系统中还存在用户组,而用户组也是用数字来区分的,即 Group ID,简称为GID。

UID和GID之间存在某些关系。比如 Centos系统在创立用户时,系统会在创立这个用户的同时,创立一个同名的用户组。而在内部,系统在分配给该用户一个UID的同时会创立一个用户组(这个用户组也会得到一个唯一的GID),并且默认情况下UID的值等于GID,创立出来的这个用户默认属于这个用户组。用户组除了在创立用户时被创立,也可以独立创立出来。

上面的解释似乎有点晦涩,这里举个例子:在学校里,每个学生都会被分配到一个学号,这个学号必定是唯一的,所以才干区分不同的学生我们可以拿学号类比一个UID;同时,每个学生都可以自己创立自己的兴越小组,这个兴趣小组的编号类比于系统中的GID,为了保证唯一,创立的这个兴趣小组的编号的数值可以简略地等于UID,这样可以保证GID也是唯一的。当然,默认情况下,一开端每个兴趣小组的成员都只有一个。当某个学生对其他某个兴趣小组感兴趣时,他可以随时参加其他的小组这时该学生就属于两个组了,而他参加其他小组的个数越多,他附属于的组就越多, Linux中也是一样,一个用户在創建后,至少属于一个组,而且后期随时可以参加、退出不同的组。

2新增和删除用户

在 Centos中新増和删除用户可以分辨应用 useradd和 userdel命令完成。比如现在想要添加一个用户名为john的用户:

{root@localhost-}#useradd john

需要注意的是,如果仅应用 useradd添加用户,该用户并不能登录到系统,一定要给该用户设置密码后才可以。同时请记住,新増一个用户的操作,也就默认新増了一个同名的用户组(在这里意味着同时新増了一个名为 john的用户组)。

{root@localhost-}# passwd john
Changing password for user john
New password
Retype new password:
passwd: all authentication tokens updated successfully

刪除用户

{root@localhost-}#userdel john

在一个账号应用一段时间后,该用户往往会在个人家目录中留下不少个人文件,应用上面的命令删除用户,这些文件还会得以保存。如果确认该用户的文件需要在删除用户时也一并彻底删除,可应用以下命令完成:

{root@localhost-}#userdel -r john

3.新增和删除用户组

也可以应用 groupadd/ groupdel单独创立/删除用户组。示例如下:

{root@localhost-}#groupadd groupl
{root@localhost-}# groupdel groupl

4.用户切换

很多情况下需要切换用户,比如本来应用了一个普通用户登录系统后来由于权限问题需要切换为root履行相干命令。或是需要从普通用户1切换为普通用户2,或是从root切换为普通用户等。切换用户的命令为su。

root由于拥有至高无上的权限,所以,root用户可以随时切换为任意的用户,比如下面的例子中,root用户切换为john,注意用户切换成功后,命令提示行中的用户变为用户john了:
{root@localhost-}# su-john
{john@localhost-}$

但是,从普通用户切换至root,是必需要知道root的密码的,下面的例子中第一次故意输入了一个毛病的密码,系统会拒绝这次用户切换第二次输入正确的密码后,就可以正确实换为root了。

{john@localhost-}$ su-root
password:
su: incorrect passwd
{john@localhost-}$
{john@localhost-}$ su-root
password:
{root@localhost-}#

最后,从一个普通用户切换为另一个普通用户的操作,也需要知道被切换的用户的密码,原因应当很好懂得。当然,这里也存在一个很明显的问題:用户1切换为用户2的前提是用户1一定要知道用户2的密码,这似乎给密码安全带来了一些问題。那么有没有方法可以解决这个问题呢?答案是确定的。感兴趣的读者可以搜索查看一下sudo命令。

TikTok千粉号购买平台:https://tiktokusername.com/