回顾:
- 文件管理命令、bash 的基础特性、文本处理命令
文件管理命令:cp,mv,rm
bash 基础特性:alias/unalias,glob(*, ?, [], [^]),快捷键
IO重定向、管道:
标准输入重定向:>, >>
标准输出重定向:>, >>
&>, &>>
COMMAND > /path/to/file 2>&1
输入重定向:<
显示使用:tr
隐式使用:有些命令可以直接跟文件比如 cat, tac, less, more, head, tail 等
管道: COMMAND1 | COMMAND2 | ...
文本处理命令:wc, cut, sort ,uniq
用户和组管理
资源分派:
Authentication:认证
Authorization:授权
Audition:审计 - 对授权的合规使用进行审计,不能随意使用
token, identity(username/passwd)
Linux 用户:Username/UID
管理员:root, 0
系统用户: 1-499(centos6),1-999(centos7)
对守护进程获取资源进行权限分配
普通用户: 500+(centos6),1000+(centos7)
交互式登录
Linux 组:Groupname/GID
管理员:root, 0
普通组:
系统组: 1-499(centos6),1-999(centos7)
普通组: 500+(centos6),1000+(centos7)
Linux 安全上下文:
运行中的程序:进程(process)
以进程发起者的身份运行:
root: cat
tom: cat
进程所能够访问的所有资源的权限取决于进程的发起者的身份
Linux 组的类别:
用户的基本组(主组):
组名同用户名,且仅包含一个用户:私有组
用户的附加组(额外组):
Linux 用户和租相关的配置文件
/etc/passwd:用户及其相关属性(名称,UID,基本组ID等等)
/etc/group:组及其相关属性
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性
1. /etc/passwd:
name:password:UID:GID:GECOS:directory:shell
grandkai:x:1000:1000:grandkai:/home/grandkai:/bin/bash
用户名:密码:UID:GID:备注信息:家目录:默认shell
GENCOS(General Electric Comprehensive Operating System)通用电气综合操作系统
2. /etc/group
group_name:password:GID:user_list
grandkai:x:1000:grandkai
组名:组密码:GID:以此组为附加组的用户列表(分隔符为逗号)
3. /etc/shadow
login name:用户名
encrypted password:加密了的密码
date of last password change:最近一次修改密码的日期,last password change
minimum password age:密码的最小年龄,days until change allowed. 0 或者空 表示没有最小密码年龄
maximum password age:密码的最大年龄(99999 表示永久有效)
password warning period:密码警告时间段(0 或者空 表示没有密码警告期)
account expiration date:账号过期时间(空字段表示没有强制密码过期)
reserved field:保留字段
加密机制:
加密:明文 --> 密文
解密:密文 --> 明文
单项加密:提取数据指纹
md5:message digest, 128 bits
sha1: secure hash algorithm, 160 bits
sha224: 224 bits
sha256: 256 bits
sha384: 384 bits
sha512: 512 bits
雪崩效应:初始条件的微小改变,将会引起结果的巨大改变
定长输出:
grandkai:$6$0cXxvl9zOAp/IlRK$nq8SKo3divnjV5Y0MBTlV/EXpmjbwTzrMZqg0AAMNCqoznnw7bJyVVobdat4nTwQQ6Q8qb/ihd5.gMI93cXc41::0:99999:7:::
6:表示使用了 sha512 算法
0cXxvl9zOAp/IlRK:表示添加的杂质
nq8SKo3divnjV5Y0MBTlV/EXpmjbwTzrMZqg0AAMNCqoznnw7bJyVVobdat4nTwQQ6Q8qb/ihd5.gMI93cXc41:这里才是密码
用户和组相关的管理命令
用户创建:useradd [options] LOGIN
-u: UID:[UID_MIN, UID_MAX],定义在 /etc/login.defs
-g: GID:指明用户所属基本组,可以为组名,也可以是 GID
-c: COMMENT:用户注释信息
-d: HOME_DIR:指定用户默认的家目录
-s: SHELL,指定用户默认的 shell 程序,可用列表在 /etc/shells 文件中
-G: GROUP1[,GROUP2,...[,GROUPN]]],为用户指明附加组,组必须事先存在
默认值设定: /etc/default/useradd 文件中
useradd -D
-s SHELL:更改默认 shell
练习:创建用户 gentoo
,附加组为 distro
和 linux
,默认 shell
为 /bin/bash
,注释信息为“Gentoo Distribution”
useradd gentoo -G distro,linux -s /bin/bash -c "Gentoo Distribution"
组创建:
groupadd [option]... group_name
-g: GID:指明 GID 号:[GID_MIN, GID_MAX]
-r: 创建系统组:
CentOS 6: ID < 500
CentOS 7: ID < 1000
查看用户相关的 ID 信息:
id [OPTION]... [USER]
-u: UID
-g: GID
-G: Groups
-n: Name(配合 -ugG 其中的一种联合使用),显示名称而不是id
【切换用户】或【以其他用户的身份执行命令】
su [options...] [-] [user [args...]]
切换用户的方式:
su Username:非登录式切换,即不会读取目标用户的配置文件(切换后还是在当前目录而不是 Username 的家目录)
su - Username:登录式切换,会读取目标用户的配置文件,完全切换
换个身份执行命令:
su [-] Username-c "COMMAND"
选项:
-, -l, --login
su -l Username 相当于 su - Username
用户属性修改:
usermod [OPTION] login
-u: UID:新UID
-g: GID:新基本组
-c: COMMENT:用户新注释信息
-d: HOME_DIR:新的家目录,原有家目录中的文件不会同时移动到新的家目录,若要移动需要配合 -m 选项,表示 --move-home
-s: SHELL:新的默认 shell
-G: GROUP1[,GROUP2,...[,GROUPN]]],新附加组,原来的附加组会被覆盖,如果想保留,配合 -a 选项,表示 --append
-e, --expireddate YYYY-MM-DD:用户账号的过期日期
-f, --inactive:密码过期之后,账号被彻底禁用之前的天数
-L, --lock:锁定用户的密码,会在用户的密码前加一个感叹号 ! 表示禁用
-U, --unlock:解锁用户的密码,移除禁用符号 !
给用户添加修改密码
passwd [OPTIONS] Username:修改指定用户的密码,仅 root 用户权限
passwd:修改自己的密码
常用选项:
-l: 锁定指定用户
-u: 解锁指定用户
-n, --minimum DAYS:最短使用期限
-x, --maximum DAYS:最大使用期限
-w, --warning DAYS:提前多少天开始警告
-i, --inactive DAYS:非活动期限
--stdin: 从标准输入读取新密码,可以是管道
echo "new passwd" | passwd --stdin Username
Note:/dev/null, bit buckets
/dev/zero
例子:修改用户 gentoo 账号密码,并输出信息不能显示在控制台或者文件中
echo "redhat" | passwd --stdin gentoo &> /dev/null
删除用户
userdel [OPTION]... login
-r, --remove:删除用户家目录
组属性修改:
groupmod [OPTION]... group
-n, --new-name:新组名
-g, --gid:新 GID
组删除:
groupdel GROUP
组密码:
gpasswd [OPTION] GROUP
-a user:将 user 添加至指定组中
-d user:删除用户 user 的以当前组为组名的附加组
-A user1,user2...:【设置有管理权限的用户列表】
newgrp 命令:临时切换基本组
如果用户本不属于此组,则需要组密码
修改用户密码过期信息
chage [OPTION]... LOGIN
-d, --lastday
-E, --expiredate
-I, --inactive
-m, --mindays
-M, --maxdays
-W, --warndays
其他命令:
chfn:修改指纹信息 (/etc/passwd 中的 GENCOS)
chsh:修改登录默认 shell
chsh [OPTION] username
-l, --list-shells:打印所有 shells(/etc/shells 中列出的所有的shell)
-s, --shell:指定用户登录的默认 shell
finger:查看指纹信息)
命令总结:
useradd, groupadd, usermod, groupmod, userdel, groupdel, id, passwd, gpasswd, pwck, su, newgrp, chage, chfn, chsh, finger
网友评论