用户,组和权限的管理
每一个使用者:被称为:用户,每一个用户的身份标识被称为ID
每个使用者:
用户标识,密码:
认证:Authentication
授权:Authorization
审计:Audition
被称为3A
日志就是为了日后审计用的。
组,用户组:
用户组:就是用户的容器,为了便于实现权限的分配的。
用户类别:
管理员
普通用户
系统用户
登录用户
用户标识: UserID, UID
16bits二进制数字:0-65535
管理员:0
普通用户:1-65535
系统用户:1-499(centos6),1-999(centos7)
登录用户:500-60000(centos6,),1000-60000(centos7)
名称解析:名称转换
UsernameUID
根据名称解析库进行:(这个库里有名称与ID的对应关系)
linux而言这个解析库就是 /etc/passwd 文件
组类别1:
管理员组:
普通用户组:
系统用户组:
登录组:
组标识:GroupID,简称GID
管理员组:0
普通用户组:1-65535
系统用户组:1-499(centos6),1-999(centos7)
登录用户组:500-60000(centos6,),1000-60000(centos7)
名称解析:groupname gid
解析库: /etc/group
组类别2:
用户的主组(基本组):
用户的附加组:
组类别3:
用户的私有组:组名同用户名,且只包含一个用户;
公共组:组内包含了多个用户;
认证信息:
通过比对事先存储的,与登录时停提供的信息是否一致;
密码:password
存储在/etc/passwd 文件中,并进行加密处理。
后才将密码存放在 /etc/shadow文件中
组密码放在 /etc/gshadow
密码使用策略:
1.使用随机密码;
2.最短长度不要低于8位;
3.应该使用大写字母,小写字母,数字和标点符号四类字符中的至少三类;
4.定期更换;
密码的加密机制:
加密之前叫明文,加密后叫密文。
加密算法:
对称加密:加密和解密使用同一个密码;
非对称加密:加密和解密使用的一对儿秘钥;
秘钥对:
公钥:public key
私钥:privatekey
非对称加密比对称加密时间长。
单向加密:只能加密,不能解密,提取数据特征码;
定长输出:
雪崩相应:输入一点点的不一样,输出的就完全不一样
雪崩效应演示:
运行两条命令:
echo "How are you?" | md5sum
echo "How are you." |md5sum
发现结果基本不同,这就是雪崩效应。
上面的命令,我们还可以使用sha512sum进行加密,sha512sum就是以512位长度进行加密他的输出是定长输出。
echo "How are you?" | sha512sum //输出都是16禁止数字
常见的算法:
md5:message digest, 128bits
sha: secure hash algorithm,
sha算法有几种,我们可以在命令行输入sha然后敲回车键,就会看sha各种算法
例如:sha1sum sha224sum sha256sum sha384sum sha512sum sharesec
举例:
echo "magedu" | sha512sum
这里我们如果特征码不变,比如magedu,连续执行上面的命令,我们发现输出的结果是一样的。
当我们添加两个用户,然后执行passwd命令进行给用户设置密码,我们在输入相同的密码后执行成功,然后我们查看 /etc/shadow文件中两个用户的密码,发现加密以后不一样。
原因:
在计算时加salt,添加的随机数:也就是说salt是个随机数,我们在输入密码后,然后在后面再加上一些随机数,然后在进行加密计算,从而导致结果不同。
那么我们在下次登录系统的时候,系统是怎样识别我们输入的密码是正确的?
解:我们还是输入上次我们的密码,然后系统会将salt上次的随机数提取出来,然后跟我们输入的密码结合,然后进行加密计算后,再与 /etc/shadow 文件中的加密进行比对,如果一样就表示我们输入的密码正确。这是根据上面我们说的,只要原始字串一样,加密的字符串也是一样的。
/etc/passwd:用户的信息库
我们可以使用whatis 命令查看passwd 命令的man手册页
whatispasswd
man5 passwd //就能看/etc/passwd文件中的每个字段的含义。
这中间每行记录就代表一个用户的信息,每个字段的含义:
第一个字段: name: 用户名
第二个字段: 占位符(以前是密码存放的位置),这个位置可以是加密的密码, 也可以是占位符
第三个字段: UID
第四个字段: GID:用户所属的主组的ID号
第五个字段: GECOS:用户的注释信息
第六个字段: directory:用户的家目录
第七个字段: shell:用户的默认shell,登录时默认shell程序
/etc/shadow: 用户密码
我们可以使用whatis 命令查看shadow 命令的man手册页
whatisshadow
man5 pshadow //就能看/etc/shadow文件中的每个字段的含义。
此文件每行分为9个字段:使用冒号(:)分隔,顺序如下:
第一字段: 登录名
第二字段: 加了密的密码,使用$分隔符,第一个$和第二个$中间的数字表示使用的加密算 法,1表示md5,然后依次往后推,sha224sum sha256sum sha384sum sha512sum。第二个$与第三个$之间的是随机数,salt。最后面的字符串,才 是真正的加密后的字符串
第三字段: 最后一次更改密码的日期,相对计时法,从1970年1月1日开始知道今天所 经历的天数。
第四字段: 密码的最短期限,即经过多长时间才能再次改密码
第五字段: 密码的最长期限,即经过多长时间不用改密码
第六字段: 密码警告时间段
第七字段: 密码禁用期
第八字段: 账号锁定
第九字段: 保留字
/etc/group
组的信息库
whatisgroup
mam[5] group
一共有四个字段:
第一个字段: 组名
第二个字段: 组密码
第三字段: 组ID号
第四个字段: 组成员 :以此组为附加组的用户的用户列表
用户的基本组记录在 /etc/passwd文件中。
相关命令:
用户: useradd, userdel usermod passwd
组: groupadd groupdel groupmod gpasswd
chage chsh id who w su