一:账户及组的概念

Linux系统对账户与组的管理是通过ID号来实现的,我们在登陆系统时,输入用户名与对应的密码,后台系统会将用户名转化为ID号后在判断该账户是否存在,并对比密码是否匹配。Linux中, 用户ID号被称为UID,组ID称为GID。 其中UID为0,代表超级管理员,也就是通常所说的root账户,1~ 499之间的ID号系统会预留下来,这样我们创建的普通用户ID号会从500开始算起。

Linux的组有基本组与附加组之分,一个用户只可以加入-个基本组中,但可以同时加入多个附加组,创建用户时,系统默认会自动创建同名的组,并设置用户加入该基本组中
用户:
超级用户: root, uid为0
系统用户: 用来管理和运行服务,系统用户的shell为/sbin/nologin, 不让该用户登录,uid为201-999
一般用户: 1000-60000,添加一般用户时,系统默认为该用户创建主目录和邮箱(home/用户名) (Nvar/mail/用户名)

二:创建账户及组

使用系统命令useradd可以创建所需要的账户,groupadd命 令用来创建组账户,需要注意的是,创建账户及组时需要有管理员权限

2.1命令: useradd

描述:创建新的linux账户
语法: useradd [选项]用户名称
选项:
-c 设置账户描述信息,一般为账户全称
-d 设置账户家目录,默认为/home/用户名
-e 设置账户的失效日期,格式为YYYY-MM-DD
-g设置账户的基本组
-G设置账户 的附加组,多个附加组中间用逗号隔开
-M 不创建账户家目录,-般与-s结合使用
-S设置账户 的登陆Shell,默认为bash
-u 指定账户UID

[root@rhe18-3 -]# useradd redhat #创建普通账户redhat
[ root@rhe18-3 ~]# useradd -c administrator -d /home/admin -e 2020-09-15 -g root -G bin,adm, mail admin #创建系统账户名称为admin,全名为administrator, 账户家目录为/home/admin,账户失效日期为2020年9月15日,账户基本组为root
附加组为bin, adm, mail
[root@rhe18-3 -]# useradd -S /sbin/nologin -M zhangsan #创建无法登陆 系统且没有家目录的用户zhangsan

2.2命令: groupadd

描述:创建组账户
用法: groupadd [选项]组名称
选项:

选项:
-g 设置组ID号
[root@rhe18-3 ~]# groupadd tom #创建tom组
[root@rhe18-3 -]# groupadd -g 1001 jerry #创建GID为1001的组jerry

2.3命令: id

描述:显示账户及组信息
语法:id账户
[ root@rhe18-3 -]# id redhat
uid=1000 (redhat) gid=1000(redhat) 组=1000( redhat)
[root@rhe18-3 ~]# id root
uid=0(root) qid=0(root) 组=0(root)

2.4用户身份切换

我们都知道linux系统中,超级用户root具有 超级管理权限。由于权限太大,如果管理不好,就会对系统安全带来严重隐患。在工作场景中,我们只在必要时才使用超级用户root的权限。- -一般的临时性处都是以普通用户的身份完成的,那么,当普通用户需要超级用户的权限时,是怎么进行切换管理理工作的呢?
这就不得不提到两个重要的用户身份切换命令su和sudo。下 面我们就讲解这两个命令是如何完成用户切换工作,达到系统管理目的的?
在linux系统中,每个文件、目录和进程,都是归属于某-个用户的,没有其用户的许可,其它的普通用户是无法操作的,root除外。
root用户的特权还表现在root可以超越任何用户和用户组来对文件或目录进行读取、修改或删除(在系统正常的许可范围内);对可执行程序的执行、终止;对硬件设备的添加、创建和移除等;也可以对文件和目录进行属主和权限进行修改。
命令: su
描述:切换用户身份的命令。
语法: su [选项] [-c命令] [username]
选项:
-:单纯使用如”su””, 代表使用login-shell的变量文件读取方式来登陆系统;若用户名没有写,则代表切换为root用户
-l:与-类似,但后面需要加欲切换的用户账号,也是login-shell的方式
-m: -m与-p是一样的,表示使用目前的环境变量设置,而不读取新用户的配置文件
-c: 仅进行一-次命令,所以-c后面可以加上命令
比如:我们以普通用户redhat登录到系统后,当要在系统中执行useradd添加用户时,会发现redhat用户没有这个权限,这个权限只能由root权限执行。

解决办法
一是退出redhat用户,重新以root用户登录
二是我们直接在redhat用户下,使用su命 令来切换到root下进行添加用户的工作,等工作完成后再退出root用户。
毫无疑问,上面两个方法, 通过su命令切换是一种比较好的办法。
通过su命令可以在用户之间切换,超级权限用户root向普通或虚拟用户切换不需要密码验证,其他普通用户之间或者普通用户切换到root,都需要切换用户的密码验证。

默认只是切换身份,并没有切换环境变量,环境变量依然是普通用户的,”.” 切换用户身份时,用户的环境变量也切换成新用户的环境变量,所以”-“不能省略,不然有些操作无法执行