Linux 用户和组

  • 理解Linux 用户和组的概念
  • 掌握passwd 文件的组成以及作用
  • 掌握shadow 文件的组成以及作用
  • 了解group 文件的内容

1.用户分类:

  • 超级管理员(root)
  • 普通用户
  • 程序用户

1.用户信息文件

/etc/passwd 文件中存储了所有用户信息。

1.passwd 格式

该文件每一行是一个用户信息,并且以: 为分隔符,一共7 段内容。

root:x:0:0:root:/root:/bin/bash
[--] - - - [--] [---] [--------]
 |   | | |   |    |        |
 |   | | |   |    |        +-> 7. Login shell
 |   | | |   |     +---------> 6. Home directory
 |   | | |   +---------------> 5. GECOS
 |   | | +-------------------> 4. GID
 |   | +---------------------> 3. UID
 |   +-----------------------> 2. Password
 +---------------------------> 1. Username

/etc/passwd文件中,排位代表:
[用户名]、[口令]、[uid]、[组id]、[备注]、[家目录]、[登录shell]

字段序号

示例

解释

说明

1

root

用户名

2

x

密码占位符

用户的密码
x代表有密码
无内容,用户登录系统无需密码

3

0

UID

当前用户的身份标识
0 就是超级管理员

4

0

GID

当前用户的基本组ID

5

root

用户的身份信息
大名

现已废弃

6

/root

用户家目录

超管:/root
普通用户:/home/用户名

7

/bin/bash

用户登录系统后
(默认)命令解释器

/sbin/nologin 不允许登录系统  
/bin/sh

[root@localhost ~]# id root
uid=0(root) gid=0(root) groups=0(root)
[root@localhost ~]#

2.用户分类

用户分类

UID

普通用户

> 1000

程序用户

1 - 1000

超级管理员用户

0

1.用户密码文件

/etc/shadow 记录了系统中用户的密码信息。

2.shadow 格式

该文件每一行记录一个用户的密码信息,并且以: 作为分隔符,一共9 段内容。
可以尝试修改root 密码。

root:$6$.IOzaCZc$f.u0fVe5QZb0mhm6UZvjcfa.un7vRXw8frfyoURLrOHmo7JsTI40a/iaQuHm/uCFqRuljfAyBCJDvOk7ZsCEM.:18765:0:99999:7:::

passwd root

root:$6$T07ge8Py$.tZXOZIOpWq2sGZKEkKn2KMahL.mcyNrQrd3C3PIqNt8kA0p/K3JtG4Dwn4vyU2kSvyEg1K2xArTs61AG1Qo1/:18766:0:99999:7:::

字段序号

示例

含义

说明

1

root

用户名

2

$6$T07ge8

密码密文

sha-512 HASH 散列算法
salt 值  
加密后的密文

3

18766

密码修改时间

距离1970 年1 月1 日
密码最近一次的修改时间(天)

4

0

密码最短有效期

在最短有效期之内不能修改密码
3:三天之内不可以修改自己的密码
root 用户不受此限制

5

99999

密码最长有效期

密码可以使用多长时间
建议设置成90

6

7

密码过期时间

密码过期前7 天会有警告提示

7

密码的不活跃期

过了密码有效期没有修改密码,
处于不活跃期,仍然可以登录系统。

8

账户失效时间

密码距离1970 年1 月1 日的失效时间(天)

9

未分配功能


|             正常登录系统            |          仍然可以登录系统    |
0  用户不能修改密码  3 用户可以修改密码 83  提示修改密码 90   登录     |   密码锁定
|-------------------|----------------|----------------|------------|-------------->
^                   ^                ^                ^            ^
密码修改时间    密码最短有效期     密码过期时间     密码最长有效期  密码不活跃期

在/etc/shadow文件中,排位代表:
[用户名]、[密码口令]、[上次更改密码时间]、[最小修改密码时间间隙]、[密码有效期]、[密码需要变更前的警告天数]、[密码有效期]、[密码过期后的宽限天数]、[账户失效时间]、[保留]

3.shadow 爆破

1.密码密文:

$6$T07ge8Py$.tZXOZIOpWq2sGZKEkKn2KMahL.mcyNrQrd3C3PIqNt8kA0p/K3JtG4Dwn4vyU2kSvyEg1K2xArTs61AG1Qo1/

$id$salt$encrypted

$加密方式$盐值(随机的)$密码密文

2.密码密文加密方式:

man crypt

密码学: 
(安全性取决于密钥,算法公开的)

密文  = 密码算法 (明文,盐值)

- 密码算法
	对称加密(加密密钥与解密密钥一样)
	非对称加密(加密密钥与解密密钥不一样)
	Hash 算法
		陷门算法
		单项运算
- 密码体制
	明文
	加密算法
	加密密钥
	解密算法
	解密密钥
	密文

解密算法

import crypt
crypt.crypt("123456","$6$T07ge8Py$")
循环算法

3.shadow 文件爆破原理:穷举与枚举

[root@localhost ~]# python
Python 2.7.5 (default, Apr 11 2018, 07:36:10)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt
>>> crypt.crypt("123.com","$6$T07ge8Py")
               //密码    //加上盐值与加密算法(加盐值防碰撞)
'$6$T07ge8Py$3/./MkHtBbziE5UiB/PvR0vkcwtvCoV0G2uYuFfIpbDleXrPJ0BPPNkFZfOY1iTsap.pdxaMrkyXJ/jQ5nxiH0'
>>> crypt.crypt("123456","$6$T07ge8Py")
'$6$T07ge8Py$JFrusYYpGVwWWiqt99Zjs1SJ6h0k.68kigzB5RIswP64SvGeGTY5MlpSwuThUw3dPKcUT214xnReGwPvlbjU41'
>>>

4.组信息文件

/etc/group 保存了组信息。

5.group 格式

该文件的每一行记录了每一个组的信息,并且以: 作为分隔符,一共4 段内容。

caliy:x:1000:caliy

字段数

示例

含义

说明

1

caliy

组名

用户组的名称,由字母或数字构成。

2

x

密码

x 是密码标识,组密码默认保存在 /etc/gshadow 文件中。

3

1000

GID

Group ID

4

caliy

群组用户

6.组与用户

先有组,再有用户

  • 用户必须有且只有一个基本组
  • 当创建一个用户时,如果没有指定基本组,会先创建一个与该用户同名的组,再创建用户。

     

一个用户可以有多个附加组。
基本组内没有任何用户,才能被删除。

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值