Linux 是一个可以实现多用户登陆的操作系统,允许多个用户同时登陆到系统上使用资源。系统根据账户来区分
每个用户的文件、进程、任务,给每个用户提供特定的工作环境。
系统解析用户的时候,并不能直接的去解析用户名 root,能够识别解析的是ID号,UID,GID,
在linux中每个用户必须属于一个组,每个用户组其实就是多个用户的一个集合。
用户 :UID
- 管理员 0 root
- 普通用户 1-65535
- 系统用户: 在Centos6 上编号 1-499 , 在Centos7上编号 1-999 。
- 登录用户: 在Centos6 上编号 500-65535 , 在Centos7上编号 1000-65535 。
- /etc/passwd
- username-------UID
组:用户集合,相同的用户特征 GID
- 管理员组 0 root
- 普通用户组 1-65535
- 系统用户组: 在Centos6 上编号1-499 ,在 Centos7上编号1-999 。
- 登录用户组: 在Centos6上编号 500-65535,在 Centos7 上编号1000-65535 。
- /etc/group
- groupname------GID
用户的基本组:
当一个用户账户属于多个组群成员时, 登录后所属的组群便是基本组, 其他的组群是附加组。 一个用户账户只能属于一个基本组。基本组也称为主要组。
用户的附加组:
一个用户账户可以属于多个附加组,附加组也称为次要组。
密码策略:
- 定期修改密码
- 密码长度不少于8位
- 至少使用三类字符和符号
- 使用随机密码
加密算法:
- 对称加密:加密和解密使用的是同一个密文
- 非对称加密,密钥对,
- 算法MD5 sha128 sha256
用户和组的管理
安全上下文:
进程以其发起者的身份来运行,进程对文件的访问权限,取决于发起此进程的用户的权限。
groupadd:添加组
语法格式:groupadd options groupname
选项 | 功能 |
---|---|
-g GID | 指定GID more创建时无法创建系统用户组。 GID+1 |
-r | 创建系统组 |
groupmod:修改组
语法格式:groupmod options groupname
选项 | 功能 |
---|---|
-g GID | 修改GID |
-n newgroupname | 修改组名 |
groupdel:删除组
语法格式:goupdel groupname
useradd:添加用户
选项 | 功能 |
---|---|
-u UID | 指定UID |
-g GID | 基本组,组先存在 |
-G groupname,groupname2 | 指明附加组 |
-c | 添加注释信息 |
-d | 指定家目录,复制/etc/skel并重命名实现 |
-s | 指定默认shell |
-r | 创建系统用户 |
-D | 显示创建用户的默认配置 |
- 例如:# useradd -u 5000 -g 500 -G jerry -c “hello world” -s /bin/sh tom
- 创建新的用户时默认的配置文件,/etc/login.defs
usermod:修改用户属性
选项 | 功能 |
---|---|
-u | 修改UID |
-g | 修改基本组 |
-G | 修改附加组 |
-a | 追加新的附加组 |
-c | 修改注释信息 |
-d | 修改家目录 |
-m | 与-d一起使用,把原来的家目录移动为新的家目录 |
-l | 修改用户名 |
-s | 修改默认shell |
-L | 锁定用户 |
-U | 解锁用户 |
- -L锁定,密码前有感叹号。锁定后无法登陆。
- -U解锁,感叹号消除,可正常登陆。
userdel:删除用户
- -r:和家目录一并删除
passwd:创建或者修改用户密码
- 1、passwd 修改自己的密码
- 2、passwd username 修改指定用户密码 只有root有权限
选项 | 功能 |
---|---|
-l | 锁定用户 |
-u | 解锁用户 |
-d | 清楚密码串 |
-e date | 设置或修改过期期限 |
-n days | 设置或修改最短使用期限 |
-x days | 设置或修改最长使用期限 |
-w days | 设置或修改告警时间 |
–stdin | 非交互式创建密码 |
- 非交互式创建密码:
echo “password” | passwd --stdin username
gpasswd:创建或者修改组密码
- 语法格式:gpasswd groupname
选项 | 功能 |
---|---|
-a username | 向组中添加用户 |
-d username | 从组中删除用户 |
newgrp:临时切换指定的组为基本组
- 语法格式:newgrp - groupname
id:显示用户的ID号
选项 | 功能 |
---|---|
-u | 显示UID |
-g | 显示GID |
-G | 显示所属组ID |
-n | 需要和-u -g -G 配合使用显示名字而非ID |
chage:更改用户密码过期信息
- 语法格式:chage options 登录名
选项 | 功能 |
---|---|
-d date | 指定密码最后修改时间 |
-E date | 密码到期日期,过了时间后帐号不可用 |
-w days | 告警时间 |
-m days | 密码可以更改的最小天数 |
-M days | 密码有效的最大天数 |
解析库文件
/etc/passwd 7个字段
root: x :0:0:root:/root:/bin/bash
- 1、用户名,长度不要超过8个字符,数字字母组成
- 2、口令:password, shawod, 使用x占位符
- 3、用户的标识符UID
- 4、用户组的标识符GID
- 5、注释信息
- 6、用户的家目录
- 7、登录shell
/etc/shadow
root:$6$rxtW5qBw$yNHpzQxqF61aBP.4EgWwdZG32DiaRg537VnUFV0x947zXHs3VLgEiToxwCQB1YsdqgTBlaQuP.gYirQQABoYB.:18312:0:99999:7:::
- 1、登录名
- 2、用户的加密口令,*,被锁定,!!代表过期, 6 6 6加密算法, r x t W 5 q B w rxtW5qBw rxtW5qBw加密因子
- 3、口令最后一次修改时间
- 4、两次修改口令最小的时间间隔
- 5、口令有效的最大天数
- 6、告警时间
/etc/group
root: x :0:
- 1、组名
- 2、口令
- 3、GID
- 4、以他为附加组的组内用户
练习:
1、创建用户gentoo,UID为4001,基本组为gentpp,附加组为distro(GID为5000)和peguin(GID为5001);
# groupadd -g 5000 distro
# groupadd -g 5001 peguin
# useradd -u 4001 -G distro,peguin gentpp
2、创建用户fedora,其注释信息为"Fedora Core",默认shell为/bin/tcsh;
# useradd -c “Fedora Core” -s /bin/tcsh fedora
3、修改gentpp用户的家目录为/var/tmp/gentpp;要求其原有文件仍能被用户访问;
# usermod -m -d /var/tmp/gentoo gentpp
4、为gentpp新增附加组netadmin;
# groupadd netadmin
# usermod -aG netadmin gentpp