一、用户及用户组存在的意义
1.用户存在的意义
系统资源是有限的,如何合理分配系统资源?
Linux的特性是:多用户,多任务。
不同的用户执行自己的任务时互不干扰,每个用户不能越界去访问其他正在执行的任务,可见linux就是通过权限的划分和管理来实现多用户、多任务的运行机制。而Linux中的用户其实也是一个道理,通过建立不同权限的用户,一来可以合理的控制和运用系统的资源,二来可以帮助用户构建自己的私人空间,更好的组织和管理自己的文件。
1)身份 :account
2)授权 :authorization
3)认证 :authentication
3A机制,3A机制组成系统中最底层的安全架构
2.用户组存在的意义
- 用户组是一个逻辑容器
- 对用户进行归类和统一授权
二、用户及用户组在系统中的存在方式
- 用户是 /etc/passwd 文件中的一行字符
- 用户组 存在方式是/etc/group 文件中的一行字符
id -------->名称 (必须要记录到文件当中 用户才能存在)
三、用户的查看与切换
1.用户查看
| whoami | 查看当前用户 |
|---|---|
| id 用户 | 查看用户信息 |
| id -u 用户 | 查看用户的用户id |
| id -g 用户 | 查看用户主组id |
| id -G 用户 | 查看用户所有的组的id |
| id -nu/g/G 用户 | 显示名称 |

2.用户切换
| su - username | 切换到username下 |
|---|---|
| - | 切换用户环境 |
| username | 如果root(超级用户)—>commuser(普通用户) 不需要输入密码 |
| commuser(普通用户)—>root(超级用户) 需要密码 | |
| commuser(普通用户)—>commuser(普通用户) 需要密码 |
- root(超级用户)—>commuser(普通用户)

- commuser(普通用户)—>root(超级用户)

- commuser(普通用户)—>commuser(普通用户)

注意: - 在做用户切换时,若用户身份使用完毕后,应及时退出
- 不要在一个shell中反复执行su命令(会导致环境错乱)

四、用户涉及到的系统配置文件
/etc/passwd :[用户身份信息文件]
/etc/group :[组身份信息文件]

/etc/skel/.* :[用户环境配置文件模板]
/etc/shadow :[用户认证信息文件]
/home/username :[用户家目录]
五、用户和用户组建立及删除
- watch -n 1 “tail -n 3 /etc/passwd /etc/group ; ls -l /home/”(监控用户建立的命令)

| useradd -u username | 用户id |
|---|---|
| useradd -g id username | 主组id |
| useradd -G id username | 附加组id |
| useradd -d dir username | 指定用户家目录 |
| useradd -c word username | 指定用户说明 |
| useradd -s shell username | 指定shell |
(0:超级用户
1-200:预留id
201-999:系统用户
1000-60000:用户级用户
/etc/login.defs:记录用户建立的默认规则)

| userdel -r username | 删除用户的系统配置文件 |
|---|

| groupadd -g id groupname | 指定组名称 |
|---|


六、用户和用户组的信息管理
1.用户信息管理
| usermod -l | 更改用户名称 |
|---|---|
| usermod -u | 更改用户id |
| usermod -g | 更改用户主组id |
| usermod -G | 更改用户附加组身份 |
| usermod -aG | 添加用户附加组身份 |
| usermod -c | 更改用户说明 |
| usermod -d | 更改用户家目录 |
| usermod -md | 更改用户家目录指向,同时更改家目录名称 |
| usermod -s | 更改默认shell |
| usermod -L | 冻结账号 |
| usermod -U | 解锁 |

2.用户组信息管理
- groupmod -g 更改用户组id

七、用户认证信息管理
cat /etc/show
1.用户名称
2.加密密码
3.最近一次修改密码日期:从1970年1月1日起到最后一次被修改那天的时间天数
4.密码最小使用权限:密码使用多少天后才能够换密码
5.密码最大使用权限:密码使用多少天后必须换密码
6.密码警告期:密码到期前几天提醒用户
7.密码非活跃期:密码到期后用户仍可使用几天
8.账户过期日期:从1970年1月1日算起,多少天后账号失效
9.预留
1) Passwd 用法
| passwd -S username | 查看密码状态 |
|---|---|
| passwd -username | 修改密码 |
| passwd –l | 冻结密码 |
| passwd –u | 解锁冻结 |
| passwd –d | 删除密码 |
| passwd –e | 清零上次修改密码时间 使得用户在下次登录时必须改密码 |
| passwd –n | 修改密码最小使用权限 |
| passwd -x | 修改密码最大使用权限 |
| passwd –w | 修改警告时间 |
| passwd –i | 修改非活跃期限 |
- 查看密码状态

- 修改密码
超级用户下改普通用户username的密码
echo 123 | passwd --stdin username [只有root下才可以执行]
【以上两种方法在root下都可以修改普通用户密码】
普通用户改密码
Changing passwd for username
Current passwd :输入原始密码
New passwd:输入新密码(8位以上无序数字+无序字母的组合)
Retype new passwd:重复输入新密码
passwd:all authentication tokens updated successfully.

- 冻结及解锁密码


- 删除密码
括号内为linux密码
输入passwd -d linux 命令后,括号内密码被删除
2)Chage 用法
| chage –d | 更改上次修改密码时间 |
|---|---|
| chage –m | 更改最小密码使用权限 |
| chage –M | 更改最大密码使用权限 |
| chage –W | 更改警告时间 |
| chage –I | 更改非活跃期限 |
| chage –E | 更改账号到期时间 |
- 修改账号到期时间

【以下修改均可用passwd或chage命令操作】

- 设置密码立即过期(更改上次修改密码日期)
强制用户在下次登录时修改密码:
设置上次修改密码时间距离1970-1-1日23天
- 修改最小密码使用权限


- 修改密码最大使用权限


- 修改密码过期前警告时间


- 修改密码到期后非活跃期限


八、用户权力下放
在系统中普通用户无法执行系统管理命令时, 如果需要普通用户执行系统管理动作,那么需要root用户来进行授权(权力下放)。
授权方式:
| sudo | 可使普通用户使用指定的用户身份来运行命令 |
|---|
授权方法:
输入命令 visudo ,:100 定位到需要修改的那一行
插入模式下,输入要加入的命令
切换到普通用户,这时就可以添加和删除用户了
来源:oschina
链接:https://my.oschina.net/u/4358874/blog/4408881














