Linux用户(user)和用户组(group)管理
用户/组基本概念与特性
系统上的每个进程(正在运行的程序)都以特定用户的身份运行。
每个文件都由特定的用户拥有。
对文件和目录的访问受用户限制。
与正在运行的进程关联的用户确定该进程可访问的文件和目录。
(如果看着不太明确,可以跟着一起操作,便于理解和掌握>-<)
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 组名 用户名
来源:oschina
链接:https://my.oschina.net/u/4400622/blog/4437300