一、三个有关配置文件
/etc/passwd 该文件用于存储用户的关键信息
/etc/group 该文件用于存储用户组的关键信息
/etc/shadow 该文件用于存储用户的密码信息
二、用户管理
1、添加用户
语法:# useradd 选项 用户名
选项:
-g: 表示指定用户的用户组,选项的值可以是用户组的id,也可以是组名。
-G: 表示指定用户的附加组,选项的值可以是用户组的id,也可以是组名。
-u: 用户的id(用户的标识符),系统默认会从500或1000(针对不同的Linux系统)之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义分配。
-c: 添加注释。
举例1: 创建用户test,要求命令不带任何选项。
# useradd test
验证所建用户:
a.验证/etc/passwd文件的最后一行,查看是否有test用户的信息。
b.验证是否存在对应用户的家目录。(/home路径下验证是否有与用户名同名的目录)
注意:
在不添加选项的时候,执行useradd之后会执行一系列的操作,包括:创建同名家目录以及创建同名用户组。
passwd文件解析:
每行含义:
用户名:密码:用户ID:用户组ID:注释:家目录:解释器shell
用户名: 新建用户的名称。
密码: 此密码位一般情况下都是‘x’,代表密码的占位。
用户ID: 用户的识别符。
用户组ID: 该用户所属的主组ID;
注释: 解释该用户是做什么的。
家目录: 用户登录系统之后的默认的位置。
解释器shell: 等待用户进入系统后,用户输入指令之后,该解释器会收集用户输入的指令,传递给内核处理。
举例2: 添加选项,创建用户zzc3,让zzc3属于1000主组,1002附加组,用户标识符888。
# useradd -g 1000 -G 1002 -u 888 zzc3
在/etc/passwd文件中查看主组
在/etc/group文件中查看附加组
2、修改用户
语法:# usermod 选项 用户名
选项:
-g: 表示指定用户的用户组,选项的值可以是用户组的id,也可以是组名。
-G: 表示指定用户的附加组,选项的值可以是用户组的id,也可以是组名。
-u: 用户的id(用户的标识符),系统默认会从500或1000(针对不同的Linux系统)之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义分配。
-l: 修改用户名。
举例1: 修改zzc3的用户主组为1002,附加组为1003。
# usermod -g 1002 -G 1003 zzc3
举例2: 修改zzc3的用户名为zc3。
# usermod -l zc3 zzc3
3、设置密码
linux不允许没有密码的用户登录系统。
语法:# passwd 用户名
案例: 设置zc3的密码为zc123456。
# passwd zc3
如果提示密码过于简单,重新输入一遍即可设置成功。
查看密码体现: /etc/shadow
密码为密文。
切换用户命令:
#su zc3(不写默认超级管理员)
切换用户注意事项:
1、从root切换到普通用户不用输入密码,反之则需要root密码。
2、切换用户后的工作路径是不变的。
3、普通用户无法访问root的家目录,反之可以。
4、删除用户
语法:# userdel 选项 用户名
选项:
-r: 表示删除用户的同时,删除其家目录。
注意: 系统已经登录的用户名不能直接删除,需要kill掉该用户的所有进程后再删除。(查看用户进程命令:ps -ef | grep 用户名,另外所有和用户操作有关的命令(除passwd外),只有root用户才有权限执行)
三、用户组管理
用户组的管理涉及用户组的添加、删除和修改操作,并且这些操作实际上是对/etc/group文件的更新。
每行含义:用户组名:密码:用户组id:组内用户名
密码: x表示占位符,一般不用。
组内用户名: 表示附加组是该组的用户名称。
1、用户组添加
语法:# groupadd 选项 用户名
选项:
-g: 表示自定义用户组id,如果不指定,系统默认会从500或1000之后(不同系统默认分配数值会有所不同)进行分配。该操作类似用户添加的“-u”操作,注意不要混淆。
举例: 创建用户组piadmin,并验证。
# groupadd piadmin
2、用户组编辑
语法:# groupmod 选项 用户组名
选项:
-g: 表示自定义用户组id,该操作类似用户修改的“-u”操作,注意不要混淆。
-n: 表示新的用户组名称,该操作类似用户修改的“-l”操作,注意不要混淆。
举例1: 修改piadmin用户组ID为1006,并将名称改为piadmins.
# groupmod -g 1006 -n piadmins piadmin
3、用户组删除
语法:# groupdel 用户组名
注意: 如果需要删除一个组,但这个组刚好是某个用户的主组时,则不能直接删除,如果确实要删除的话,则需要先从组内把所有用户移出来。移出用户的方法(修改用户主组为其他组):usermod -g 用户组ID