Linux是一个可以实现多用户登录的操作系统,允许多个用户同时登陆到系统上使用资源。系统根据账户来区分每个用户的文件,进程,任务,给每个用户提供特定的工作环境。
对用户组的管理主要包括:添加,修改,删除以及配置访问系统的资源。
1.1 Linux用户组的基本概念
用户组 group,就是具有相同特征的用户的集合体。
- 查看当前登录的用户信息(id 用来查看用户的信息)
id 查看当前用户的登录信息
id jack 查看用户Jack的信息
(uid 代表属主 gid 代表属组)
- 查看文件的owner
/home/用户名 用户家目录
- 查看运行进程的username
- 和用户组相关的一些文件
用户账号文件 /etc/passwd
用户名:X(密码): uid:gid:描述:HOME:shell
用户密码文件 /etc/shadow
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:失效时间:标志
用户组账号文件 /etc/group
用户组密码文件 /etc/gshadow
加密算法
$1:MD5
$5:SHA-256
$6:SHA-512
1.2 Linux用户组分类
1 用户分类
Linux系统中存在三种用户:root用户、系统用户(也称之为伪用户)、普通用户
系统约定:RHEL6
uid:0 特权用户(管理员)
uid:1~499 系统用户
uid:500+普通用户
系统约定:RHEL7
uid:0 特权用户(管理员)
uid:1~999 系统用户
uid:1000+普通用户
2 组分类
基本组(私有组)
附加组(公有组)
系统组
根据账户功能,用户组可以分为:
超级用户组:root gid 为 0
系统用户组:gid 1-999
本地用户组:gid 1000+
1.3 linux用户组管理
用户组:
groupadd命令用来创建用户组
例如:
- groupadd hrr(创建用户组 hrr)
在/etc/group目录下可查看组信息
- (groupadd hrr1 -g 2000)创建组 hrr1并且指定gid
- 利用过滤命令grep 查看/etc/group目录中组hrr1的信息
- 用命令 groupdel 命令 删除组hrr1 再利用过滤命令grep 查看/etc/group目录中组hrr1的信息 就不存在了
用户: - 利用useradd 命令创建普通用户
例如:创建用户 user01
- 利用过滤命令 grep 查看/etc/shadow /etc/group /etc/passwd 三个目录中user01的信息
- useradd 的一些常用参数(创建用户的一些指定选项)
例如:
1、创建用户 user02 指定uid 为530
2、创建用户 user03 并指定家目录 为 /aaa(默认家目录为/home/用户名)
3、创建用户user04并指定shell 为/sbin/nologin(普通用户shell默认为/bin/bash)
4、创建用户user05 并指定附加组 hrr
5、创建用户user06 并且添加注释信息 hahaha
在这里插入图片描述 - id 命令用于查看用户的信息(没有指定用户组时,默认用户组与用户同名)
- 利用userdel 删除用户 (-f 强制删除用户 -r 同时删除用户及家目录)
普通删除并不删除用户家目录
利用参数-r 可以删除用户及家目录和mail spool
=组成员管理(注意只针对已有的用户)=
命令usermod 以及它的常用参数
1.4、扩展知识
useradd 在创建用户时,参照的文件
手动创建用户示例:非交互式创建密码
强制在用户下一次登录时修改密码(chage -d 0 hahaha)
将多个用户加入到指定的组中:
将用户Jack 添加到组 wheel中
将用户 user01 user02 user03 添加到组 hrr 中 ,并用过滤命令grep 在/etc/group 目录中查看hrr组
1.5 给普通用户提权
用以下两种方法可以给普通用户提权
方法一:
方法二:
在普通用户中,在想执行的命令前加上sudo 命令即可
例如:
在普通用户中查看 /root 目录
练习题
2、用户管理命令练习
a.增加两个用户并设置好密码(写两行):John Lucy
b.查看各用户的基本信息(相关文件在/etc 中)
c.查看各用户的密码信息(相关文件在/etc 中)
d.查找用户summer并显示相关信息
e.将当前用户切换到John(进入其主目录)
su - 用户名
f.显示当前登录的用户名(whoami 显示当前登录用户名)
g.将John的登录密码改为:mima1234
h.将John的账号有效期设为2018年12月31号
i.将John加入到summer组中
j.将用户名John改为jackk
usermod -l jackk john (参数-l 用来修改用户名)
k.将Jackk的用户全名改为:Jackk.willianmus
l.用户切换到lucy,删除lucy的密码
m.删除用户lucy
userdel -r 用户名 (-r 可以删除用户及其家目录)
3.组管理命令练习
a.增加以一个student
groupadd student
b.查看所有组的基本信息(相关文件在etc中)
cat /etc/group
c.查看summer组中包含哪些用户名
d.将student组改名为teacher(groupmod命令更改群组识别码或名称。需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。)
参数:
groupmod -n teacher student
e.删除teacher
groupdel 用户组名