一、 账户及组的概念
Linux系统帐号及组的管理是通过ID号来实现的,我们在登陆系统时,输入用户名对应的密码,操作系统会将用户名转化为ID号后再来判断该帐号是否存在,并对比密码是否匹配。Linux中,用户ID号被称为UID,组ID号被称为GID。其中,UID为0,代表超级管理员,也就是常说的root帐号,1-499之间的ID号系统会预留下来。这样我们创建的普通用户ID号会从500算起。
Linux操作系统中的组分为基本组和附加组,一个用户同一时刻仅可以加入一个基本组中,但可以同时加入多个附加组。默认在创建用户时,系统默认会自动创建同名的组,并设置用户加入该基本组中。
注意:一个用户必须至少属于一个组
基本组(私有组) ; 附加组(从属组 公共组)
二、创建账户及组
使用系统命令 useradd可以创建我们需要的账户,groupadd命令用来创建组账户。需要注意的是,创建账户及组是需要有管理员权限。
1.useradd 创建账户
格式:useradd [选项] 用户名称
[root@gao shell]# useradd user
[root@gao shell]# cat /etc/passwd //查看刚创建的用户
user:x:1002:1002::/home/user:/bin/bash //在最下面一行出现
以上每个字段的含义
用户名:密码占位符:用户id: 组id:备注信息:家目录:解释器
选项:
-c 设置帐号描述信息
-d 设置帐号家目录,默认为/home/用户名
[root@gao shell]# useradd -d /user user4
注意:不可以指定已经存在的目录
-e 设置帐号的失效日期,格式为YYY-MM-DD。
[root@gao shell]# useradd -c administrator -d /home/admin -e 2020-12-24 \ -g root -G bin,adm,mail admin
//创建普通用户admin,全名为administrator,账户家目录为/home/damin,账户失效日期为2020年12月24日,账户基本组为root,附加组为bin,adm,mail。
-g 设置账户的基本组。
-G 设置账户的附加组,多个附加组中间用逗号隔开
-M 不创建账户家目录,一般与-s结合使用 。
-s 设置账户的登陆shell,默认为bash
[root@gao shell]# useradd -s /sbin/nologin -M user5
//创建无法登陆系统且没有家目录的用户user5
-u 指定账户UID。
[root@gao shell]# useradd -u 603 user4
[root@gao shell]# cat /etc/passwd
user4:x:603:1005::/home/user4:/bin/bash
//可以看到用户user4的UID设置为603
2.groupadd 创建组账户
格式:gruopadd [选项] 组名称
[root@gao shell]# groupadd yizu
//创建名为yizu的组账户
选项:
-g 组ID 组名(-g基本组,-G附加组)
[root@gao shell]# groupadd -g 700 java
创建GID为700的组java
添加组成员/删除组成员
[root@gao shell]#gpasswd -a 用户名 组名 //添加
[root@gao shell]#gpasswd -d 用户名 组名 //删除
3.id显示账户及相关信息
[root@gao shell]# id root
uid=0(root) gid=0(root) 组=0(root)
//查看root账户及相关信息
三、修改账户及组
1.passwd 更新帐号认证信息。
[root@gao ~]# passwd
//为当前用户设置密码
格式:[选项] [账户名称]
选项:
-l 锁定账户,仅root可使用此选项
[root@gao ~]# passwd -l user3
锁定用户 user3 的密码 。
passwd: 操作成功
–stdin 从文件或管道读取密码。
[root@gao ~]# echo "123456" |passwd --stdin gao
//交换式修改密码
-u 锁定账户
[root@gao ~]# passwd -u user3
-d 快速清空账户密码,仅root可使用此选项。
[root@gao ~]# passwd -d user3
2.usermod修改账户信息
格式:usermod [选项] 账户名称
选项:
-d 修改账户家目录
[root@gao ~]# usermod -d /home/tomcat user4
//修改user4的家目录,/home/tomcat目录必须存在
-e 修改账户失效日期
[root@gao ~]# usermod -e 2020-01-01 user4
//修改账户失效日期为2020年1月1日
-g 修改账户所属基本组
[root@gao ~]# usermod -g mail user4
-G 修改账户所属附加组
-s 修改账户登陆shell
[root@gao ~]# usermod -s /bin/bash user5
-u 修改账户UID
[root@gao ~]# usermod -u 1005 user5
四、删除账户及组
1.userdel 删除账户及相关文件
[root@gao ~]# userdel user3
//删除账户user3,但该账户的文件不删除
格式:userdel [选项] 账户名称
选项:
-r 删除账户及相关文件
[root@gao ~]# uesrdel -r user4
2.groupdel 删除组账户
[root@gao ~]# groupdel zhi //删除组zhi
五、 账户与组文件解析
1.账户信息文件
账户信息被保存在/etc/passwd文件中,通过cat /etc/passwd查看文件内容(前面有用到过)。
2.账户密码文件
账户密码信息被保存在/etc/shadow文件中,通过cat /etc/shadow查看。
3.组账户信息文件
组账户信息被保存在/etc/group文件中,通过cat /etc/group
4.组账户密码文件
组账户密码信息被保存在/etc/gshadow文件中,通过cat /etc/gshadow
通过<gpasswd组名> 方式 可以为组设置密码
通过<group -a账户名称 组账户 ,可为组添加管理员。