基本正则表达式元字符:
字符匹配:. :匹配任意单个字符
[]:匹配指定范围内(放括号内所包含的)的任意字符
[^]:匹配指定范围外的任意字符
[:digit:]:数字 [[:digit:]]:匹配任意数字 [[:lower:]]:匹配小写字母 [[:upper:]]:匹配大写字母
匹配次数::匹配前面字符任意次数
.:匹配任意长度的任意字符
\?:匹配前面的字符1次或0次
*:匹配前面的字符一次或者多次
{m,n}:匹配前面的字符至少m次,至多n次
grep “<[0-9]>” /etc/passwd
位置锚定:^:行首铆定 ^profile
:
行
尾
铆
定
p
r
o
f
i
l
e
:行尾铆定 profile
:行尾铆定profile
^
:
空
行
[
[
:
s
p
a
c
e
:
]
]
:空行 ^[[:space:]]
:空行[[:space:]]:空白字符
<profile\b:词首铆定
\profile>:词尾铆定
分组和应用:
():grep “(l…e).*\1” file
grep l…e.*l…e file 找出含有l…e的所有行
用户,组的基本概念
用户和组:系统上每一个进程都是由一个特定的用户发起
系统上的文件都是有特定的用户拥有
用户对系统上的文件访问时,受到权限控制
与运行中的进程相关联的用户确定该进程可访问的文件和目录
用户:用户标识符,密码
用户的分类:管理员 普通用户(登陆用户 管理用户)
组:用户组,用户容器 /etc/group
用户和组的标识符:
UID(属主的标识符):0-65535
管理员用户:root:0
普通用户:1-65535 系统用户:CentOS6之前:1-499 CentOS7之后:1-999
登陆用户:CentOS6之前:500- CentOS7之后:1000-
名称解析:用户名-----UID
GID(数组。。。。):0-65535
组类别:用户的基本组 用户的附加组
名称解析: /etc/group
认证信息:密码保存: /etc/shadow /etc/gshadow
密码策略:1.使用随机密码
2.最短长度不低于8位
3.应该使用小写字母,大写字母,数字,标点符号四类中的至少三类
4.定期更换
加密算法:对称加密 不对称加密
用户组管理:安全上下文:进程是以其发起者的身份运行,进程对文件的访问权限取决于发起此进程的用户的权限
groupadd:groupadd [options] group
-g GID:指定组ID,默认情况下上一个组ID+1
-r :创建一个系统组
groupmod:修改组属性 groupmod [options] GROUP
-g:修改组ID -n:修改组名
groupdel:删除组 groupdel [options] GROUP
groupdel nebula
useradd 创建用户 useradd [options] LOGIN
-u:指定UID
-g:指定基本组ID
-G:指定用户的附加组,附加组要实现存在
-c:添加注释信息
-d: 指定用户的家目录
-s:指定用户的默认shell
-r:创建系统用户
useradd -D 显示创建用户的配置
useradd -D [options] 修改默认配置
userdel:用户删除
userdel 登录名
-r:删除用户时一并删除家目录
usermod:修改用户属性
-u:修改用户ID
-g:修改用户的基本组
-G:修改用户的附加组
-c:修改注释信息
-d:修改家目录
-m:与-d选项一起使用,用于将原来家目录的文件移动到新的家目录
-a:与-G一起使用,追加用户的附加组
-l:修改用户名
-s:修改默认shell
-L锁定用户密码 -U解锁用户密码
/etc/passwd root:x:0:0:root:/root:/bin/bash
用户名:密码(X占位符):用户标识符:组标识符:注释信息:主目录:登录shell
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays]
[-i inactivedays] [-S] [–stdin] [username]
1.passwd :直接修改自己的密码
2.passwd username:修改指定用户的密码,仅root用户有此权限
3.-l:锁定用户
4.-d:清除密码串
5.-e DATE:过期日期
6.-i DAYS:非活动日期
7.-n DAYS:密码最短使用期限
8.-x DAYS:密码最长使用期限
9.-w DAYS:告警期限(过期前几天的提醒)
10.–stdin:非交互式创建密码 ehco ”PASSWPRD“ | passwd --stdin username
gpasswd:组密码 -a username:向组内添加用户
-d username:从组内删除用户
newgrp:用来做临时切换 临时切换指定的组为基本组
chage:更改密码过期信息
-d:指定密码最后修改日期
-E:密码到期日期
-w:密码过期前的警告天数
-m:密码可以更改的最小天数
-M:密码保持有效的最大天数
id:-u:显示UID -g:显示GID -G:显示用户的所有组ID -n:显示名字
/etc/shadow:
root:
6
6
6wo4IJnw5
Z
.
U
58
u
I
2
x
w
d
q
x
E
i
r
5
z
H
O
W
u
T
v
I
k
J
I
R
y
t
s
f
v
B
E
v
H
V
9
b
d
3
f
S
P
r
Y
a
85
C
l
5
u
O
H
s
n
K
M
n
Q
w
q
I
K
M
X
T
0
c
r
/
P
b
I
I
J
.
A
h
i
V
c
0
:
18104
:
0
:
99999
:
7
:
:
:
登
录
名
:
加
密
口
令
:
最
后
一
次
修
改
时
间
:
最
小
时
间
间
隔
:
最
大
时
间
间
隔
:
警
告
时
间
:
不
活
动
时
间
:
失
效
时
间
:
标
志
181040999997
最
后
一
次
修
改
时
间
:
从
某
一
个
时
间
点
开
始
到
用
户
最
后
一
次
修
改
口
令
的
时
间
天
数
,
一
般
情
况
下
是
从
1970.1.1
开
始
最
小
最
大
时
间
间
隔
警
告
时
间
:
再
密
码
有
效
期
内
多
少
天
的
告
警
不
活
动
时
间
:
长
期
不
登
陆
的
最
大
时
间
失
效
时
间
:
用
户
有
限
时
间
,
不
是
密
码
有
效
时
间
l
i
n
u
x
b
a
s
h
的
特
性
:
1.
补
全
:
命
令
补
全
路
径
补
全
2.
快
捷
键
:
C
T
R
L
+
C
,
a
,
e
,
u
,
k
3.
历
史
命
令
:
h
i
s
t
o
r
y
调
取
上
一
个
命
令
执
行
的
最
后
一
个
参
数
E
S
C
.
!
Z.U58uI2xwdqxEir5zHOWuTvIkJIRytsfvBEvHV9bd3fSPrYa85Cl5uOHsnKMnQwqIKMXT0cr/PbIIJ.AhiVc0:18104:0:99999:7::: 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 18104 0 99999 7 最后一次修改时间:从某一个时间点开始到用户最后一次修改口令的时间天数,一般情况下是从1970.1.1开始 最小最大时间间隔 警告时间:再密码有效期内多少天的告警 不活动时间:长期不登陆的最大时间 失效时间:用户有限时间,不是密码有效时间 linux bash的特性:1.补全:命令补全 路径补全 2.快捷键: CTRL+C, a, e, u, k 3.历史命令:history 调取上一个命令执行的最后一个参数 ESC. !
Z.U58uI2xwdqxEir5zHOWuTvIkJIRytsfvBEvHV9bd3fSPrYa85Cl5uOHsnKMnQwqIKMXT0cr/PbIIJ.AhiVc0:18104:0:99999:7:::登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志181040999997最后一次修改时间:从某一个时间点开始到用户最后一次修改口令的时间天数,一般情况下是从1970.1.1开始最小最大时间间隔警告时间:再密码有效期内多少天的告警不活动时间:长期不登陆的最大时间失效时间:用户有限时间,不是密码有效时间linuxbash的特性:1.补全:命令补全路径补全2.快捷键:CTRL+C,a,e,u,k3.历史命令:history调取上一个命令执行的最后一个参数ESC.!
4.命令别名: alise NAME=‘commond’
/etc/bashrc
5.变量:全局变量 局部变量
6.特殊符号:|
.
. .
``
‘’ :强引用
“”
{}:mkdir -p {bin,etc/sysconfig/network-scripts/ifcfg-eth0,dev/sda,usr/local/{lib,lib64}}
输入输出重定向:标准输入 0 标准输出 1 错误输出 2
>覆盖 >>追加 2>&1:标准和错误的同时输出
通配符:*
?
[]: [[:digit:]]
ls pwd cd date hwclock clock uname查看系统相关信息 uptime dmesg top
grep:正则表达式:元字符:字符匹配 匹配次数 位置锚定 分组引用
Linux文件系统权限:
权限对象:
文件拥有者(也称属主):rwx
群组:r-x
其他人:r-x
权限类型:d rwxr-xr-x. 2 root root 6 Jul 28 09:24 bin
权限位: r:4 w:2 x:1
dwx权限说明:针对文件和目录代表不同意思
1.对文件而言: r:可以获取文件的数据
w:可以修改文件数据
x:可以将此文件运行为进程
2.对于目录而言: r:可以使用ls命令获取文件列表
w:可以修改文件列表,即创建和删除
x:表示我们可以cd到此目录,并且可以使用ls -l获取文件的详细属性
权限逻辑判断:文件:前提条件,用户能够进入到文件所在目录
删除文件:看用户是否具备对目录的w权限
1.判断用户身份,owner-group-other
创建文件,和删除文件逻辑相同
目录: 前提条件:判断用户是否能够成功进入目录所在目录,有X权限!
删除目录:
创建目录:
权限管理命令:
chmod: chmod [OPTION]… MODE[,MODE]… FILE…
chmod [OPTION]… OCTAL-MODE FILE…
chmod [OPTION]… --reference=RFILE FILE…
三类用户:
u:属主
g:属组
o:other
a:所有
MODE表示法:赋权表示法,rwx
u= u=r g= o= a=
授权表示法:u+ u-
g+ g-
o+ o-
a+ a-
注意:只有用户自己修改自己的文件
从属关系: chown: chown :hr /HR :hr数组 无:是属主
chgrp : chgrp groupname test
-R:递归修改
注意:只有管理员可以修改
根目录下文件必须可执行
进程安全上下文:
进程对文件访问权限模型:进程的属主与文件的属主是否相同,如果相同,则应用的是属主权限。
否则,则检查进程的属主是否属于文件的数组,如果是,则应用数组的权限,否则,使用other权限。
基本权限ACL:1.针对单个用户设置
2.针对用户组设置
3.子文件/目录继承父目录的权限
查看系统是否支持ACL:tune2fs -1 /dev/sda2 | grep “Default mount options:”
设置ACL: setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file …
-m:配置acl权限,不能和-x同时使用
-x:删除acl配置
-b:移除所有的acl配置
-R:递归配置
-d:配置默认的acl参数,只对目录有效
setfacl -m u:nebula:rw /tmp/aclfile
getfacl /tmp/aclfile
权限掩码: umask
文件权限:666-022
644
目录:777-022
755
特殊权限:SUID:在当文件所有者的x权限上出现s时,表示当前这个文件具有SUID权限
1.SUID权限仅仅对二进制程序有效
2.执行者对于该程序有x权限
3.本权限仅仅在执行程序的过程中有效
4.程序的执行者拥有该程序的拥有者的权限
如果当前这个文件属主位没有x权限,显示大写S
SGID:1.SGID也是对二进制文件有效
2.执行者对该程序具有可执行权限
3.主要用于目录之上
SBIT: 1.主要针对于other位
2.作用于目录
3.在该目录下创建新的文件或目录,只有自己和root可以删除
4.对文件无效
SUID,SGID,SBIT
字符表示法: s s t
数字表示法:4 2 1
chmod 0755
1755
chattr:修改隐藏属性 a:append 只能够向文件添加数据,不能删除数据
i:文件不能被删除,改名,连接同时不能写入内容
A:atime 访问时间不可修改
lsattr:显示隐藏属性