Linux用户(user)与用户组(group)管理(超详细解释)

╄→尐↘猪︶ㄣ 提交于 2020-08-04 22:41:49

用户/组基本概念与特性

系统上的每个进程(正在运行的程序)都以特定用户的身份运行。
每个文件都由特定的用户拥有。
对文件和目录的访问受用户限制。
与正在运行的进程关联的用户确定该进程可访问的文件和目录。


(如果看着不太明确,可以跟着一起操作,便于理解和掌握>-<)

1.查看用户的uid/gid

格式:[root@localhost~]#id 用户名
在这里插入图片描述

能看到uid(用户ID)、gid(初始组ID),groups是用户所在组,这里既可以看到初始组,如果有附加组,则也能看到附加组

2.用户基本信息文件

用户基本信息文件存在于/etc/passwd中,由“:”分割为7段字符
在这里插入图片描述

“用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell”

(1)用户名

用户名,就是一串代表用户身份的字符串。
前面讲过,用户名仅是为了方便用户记忆,Linux系统是通过UID来识别用户身份,分配用户权限的。/etc/passwd文件中就定义了用户名和UID之间的对应关系。

(2)密码

“x"表示此用户设有密码,但不是真正的密码,真正的密码保存在/etc/shadow文件中。为了防止密码的泄露,现Linu系统把真正的加密密码串放置在/etc/shadow文件中,此文件只有root用户可以浏览和操作,这样就最大限度地保证了密码的安全。需要注意的是,虽然"x"并不表示真正的密码,但也不能删除,如果删除了"x”,那么系统会认为这个用户没有密码,从而导致只输入用户名而不用输入密码就可以登陆。

(3)UID

UID,也就是用户ID。每个用户都有唯一的一个UID,Linux系统通过UID来识别不同的用户。实际上,UID就是一个0~2^32之间的数,不同范围的数字表示不同的用户身份。
在CentOS7的Linux系统中UID:“0”为超管的uid;
“1~999”为系统自行创建的uid,保留给系统使用;
“1000~2^32”为普通用户的uid。


(4)GID

全称“Group ID”,简称“组ID”,表示用户初始组的组ID号。
初始组,指用户登陆时就拥有这个用户组的相关权限。每个用户的初始组只能有一个,通常就是将和此用户的用户名相同的组名作为该用户的初始组。比如说,我们手工添加用户user001,在建立用户user001的同时,就会建立user001组作为user001用户的初始组。
附加组,指用户可以加入多个其他的用户组,并拥有这些组的权限。每个用户只能有一个初始组,除初始组外,用户再加入其他的用户组,这些用户组就是这个用户的附加组。附加组可以有多个,而且用户可以有这些附加组的权限。
描述性信息
这个字段没有重要的意义,只用来添加解释。



(5)主目录

用户登录后有操作权限的访问目录,称为用户的主目录。

(6)Shell

Shell就是Linux的命令解释器,是用户和Linux内核之间沟通的桥梁。Linu系统默认使用的命令解释器bash(/bin/bash),如果我把lamp用户的Shell命令解释器修改为/sbin/nologin,那么,这个用户就不能登录了。

3.用户的密码文件

/etc/shadow文件,用于存储Linux系统中用户的密码信息
在这里插入图片描述

“用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段”

(1)用户名

同/etc/passwd文件的用户名有相同的含义。

(2)加密密码

这里保存的是由加密算法加密过的密码。(不能在文件中修改,否则系统会无法识别,使得密码失效)

(3)最后一次修改时间

此字段表示最后一次修改密码的时间,可是,为什么用户显示的是18467呢?这是因为Linux计算日期的时间是以1970年1月1日作为1不断累加得到的时间,到1971年1月1日,则为366天。这里显示18467天,也就是说,此账号在1970年1月1日之后的第18267天修改的用户密码。

(4)最小修改时间间隔

最小修改间隔时间,也就是说,该字段规定了从第3字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是0,则密码可以随时修改;如果是7,则代表密码修改后7天之内不能再次修改密码。

(5)密码有效期

为了强制要求用户变更密码,这个字段可以指定(最后一次更改密码)多长时间内需要再次变更密码,否则该账户密码进行过期阶段,该字段的默认值为99999。
密码需要变更前的警告天数
当账户密码有效期快到时,系统会发出警告信息给此账户,提醒用户"再过n天你的密码就要过期了,请尽快重新设置你的密码!"。

(6)账号失效时间

使用自1970年1月1日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!
保留
这个字段目前没有使用。

4.组信息文件

/ect/group 文件是用户组配置文件在这里插入图片描述

“组名:密码:GID:该用户组中的用户列表”

(1)组名

也就是是用户组的名称,有字母或数字构成。同/etc/passwd中的用户名一样,组名也不能重复。

(2)组密码

"x"仅仅是密码标识,组密码默认保存在/etc/gshado文件中,不过这项功能我们很少使用。

(3)组ID(GID)

就是群组的ID号,Linux系统通过GID区分用户组。

(4)组中的用户

列出群组包含的所有附加用户。

5.新建用户

Linux系统中,可以使用useradd命令新建用户,此命令的基本格式如下:
[root@localhost~]#useradd [选项] 用户名
在这里插入图片描述

6.修改用户密码

命令创建新用户时,并没有设定用户密码,因此还无法用来登陆系统。
passwd命令的基本格式如下:
[root@localhost~]#passwd [选项] 用户名
在这里插入图片描述


7.修改用户信息

用户信息后期如何修改呢?可以使用vim文本编辑器修改,也可以使用usermod命令修改。
usermod命令的基本格式如下:
[root@localhost~]#usermod [选项] 用户名
在这里插入图片描述


8.删除用户

删除用户使用的为userdel命令,此命令只有root用户才能使用。
userdel命令的语法很简单,基本格式如下:
[root@localhost~]#userdel -r 用户名
-r选项表示在删除用户的同时删除用户的家目录。如果不删除用户的家文件,将会影响下一次同名用户的创建。
在这里插入图片描述



9.添加用户组

添加用户组的命令是groupadd
格式:[root@localhost~]#groupadd [选项] 组名
在这里插入图片描述

10.加入用户组

加入用户组的命令是usermod
格式:usermod -aG 组名 用户名

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!