基本正则表达式元字符
字符匹配
.:匹配任意单个字符
[]:指定范围内的任意字符
[^] :匹配指定范围外的任意单个字符
[:digit:]:数字
[[:dight:]]匹配任意数字,
[[:lower:]], [[:upper:]]
匹配次数
*:匹配前面字符任意次数
x.*y: 之间匹配任意长度的任意字符
?: 匹配前面的字符0次或者1次
\ *: 匹配一次或者多次
\ {m,n\ }:匹f配至少m次至多n次
\ {0,N}\
位置锚定
^行首锚定:
KaTeX parse error: Expected group after '^' at position 7: 行尾锚定: ^̲:空行
1$:中间匹配的都是空格
\ < :词首喵定
\ >: 词尾喵定
"\ < \ " grep -0 \ <[0~9] \
分组和引用
\ ( \ ):
\ (xy\ )\ab (zd\ ab\2
\ 1
history | grep “([0-9]){4}”
用户、组的基本概念
用户和组
系统上每一个进程都是由一个特定的用户发起
系统上的文件都是由特定的用户拥有
用户对系统上的文件访问时,受权限控制
与运行中的进程相关联的用户确定该进程可访问的文件和目录
用户:
用户标识符,密码
用户的分类: 管理员 普通用户
组:用户组、用户容器
用户和组的标识符:UTD 0-65535 GTD 0-65535
管理员用户 : root :0
普通用户 : 1-65535
系统用户 CentOS6: 1-499 CentOS7:1-999
登录用户 CentOS6:500-65535 CentOS7:1000-65535
名称解析 用户名----------UID /etc/passwd
组类别: 用户的基本组 用户的附加组 /etc/group
认证信息: 密码 /etc/shadow /etc/gshadow 存密码
密码策略:
1.使用随机密码
2.最短长度不低于8位
3.应该使用小写字母,大写字母,数字,标点符号四类中的至少三类
4.定期更换
加密算法:
用户组管理: 安全上下文:进程是以其发起者的身份运行,进程对文件的访问权限,取决于发起此进程的用户权限
groupadd 创建组 groupadd [ options ] group
-g GID :指定组ID ,默认情况下上一个组的ID+1
-r :创建一个系统组
groupmod:修改组属性
groupamod [ options ] GROUP
-g :修改组ID
-n :修改组名
groupdel:删除组 groupadel [ options ] group
用户 tail -l 路径 查看新加的用户
useradd 创建用户 useradd [ options ] LOGIN
-u: 指定UID
-g:基本组ID
-G: 指定用户的附加组. (事先存在)
-c : 添加注释信息
-d:指定用户的家目录 ,通过复制/etc/skel目录,并改名
-s: 指定用户的默认shell
-r:创建系统用户
useradd -D 显示创建用户的配置
userdel:用户删除
userdel 登录名
-r :删除用户时一并删除家目录
usermod:修改用户属性
-u: 修改指定UID
-g:修改基本组ID
-G: 修改指定用户的附加组. (事先存在)
-c : 修改注释信息
-d:修改指定用户的家目录
-m:与-d选项一起使用,用于将原来家目录的文件移动到新的家目录
-a:与-G一起使用,追加用户的附加组
-l:修改用户名
-s: 修改指定用户的默认shell
-L:锁定用户密码
-U: 解锁用户密码
cd /tmp /etc/passwd
root: x :0:0:root:/root:/bin/bash
用户名:密码(x占位符):用户表示符:组标识符:注释信息:家目录 主目录:登录shell
passwd
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [–stdin] [username]
1.passwd :直接修改自己的密码
2.passwd username :修改指定用户的密码,仅root用户有此权限
-l:锁定用户
-d:清楚密码串
-e DATE:过期期限
-i DAYS:非活动期限
-n DAYS: 密码最短使用期限
-x DAYS: 密码最长使用期限
-w DAYS: 告警期限 (快过期提醒)
–stdin :非交互式创建密码
echo “PASHWORD” | passwd --stdin username
gpasswd:
-a username:向组内添加用户
-d username: 从组内删除用户
newgrp: 临时切换指定的组为基本组
chage: 更改密码过期信息
-d:指定密码最后修改信息
-e:密码到期日期,
-w:密码过期前的警告天数
-m:密码可以更改的最小天数
-M:密码保持有限的最大天数
id:
-u 显示UID
-g 显示GID
-G 显示用户所有组
-n 显示名字
/etc/shadow
登录名:加密口令:最后一次修改时间:中最小时间间隔:警告时间:不活动时间:失效时间:标志
最后一次修改时间:表示从某一个时间点开始,到用户组后一次修改口令的时间天数,一般情况下是从1970.1.1
最小时间间隔 最大时间间隔
linux文件系统权限
权限对象
文件拥有者 群组 其他人
权限类型
drwxr-xr-x 2 root root 4096 jul 28 06:43 bin
r:4 w:2 x: 1
r–r--r-- 444 rw -rwx -r 674 加法算法
755 644 600 700
rwx 权限说明
l1、对于文件而言
r:可以获取文件的数据
w:可以修改文件的数据
x:可以将此文件运行为进程
d 2、对于目录而言 写入 rwx
r:可以使用历史命令获取文件列表
w:可以修改文件列表,即创建和删除
x:表示我们可以cd此目录,并且可以使用ls -l获取文件的详细属性
权限判断逻辑
文件:前提条件,用户能够进入到文件所在目录
删除文件:用户是否具备对目录的w权限 1、判断用户身份,顺序owner-group-other
创建文件:和删除文件逻辑相同
目录:前提条件,判断用户是否能够成功进入目录所在目录
删除目录:用户是否具备对目录的w权限 1、判断用户身份,顺序owner-group-other
创建目录:和删除目录逻辑相同
权限管理命令
chmod
chmod [OPTION]… MODE[,MODE]… FILE…
chmod [OPTION]… OCTAL-MODE FILE…
chmod [OPTION]… --reference=RFILE FILE…
三类用户
u g o a:所有
MODE表示法:
赋权表示法, rwx
u= u=r
g=
o=
a=
chmod a=rx
授权表示法
u+,u- chmod a-r file
g+,g-
o+, o-
a+,a- 注意:只有用户自己可以修改自己的文件
chomd 777 filename
修改属主或者属组
从属关系 chown user:group dirname chaarp group dirname
chown,chgrp dirname
-R:递归修改 注意:只有管理员可以修改
进程安全上下文
进程对文件访问权限模型
进程的属主与文件的属主是否相同,如果相同,则应用的是属主权限
否则,则检查进程的属主是否属于文件的属组,如果是,则应用属组的权限
否则,使用other权限
基本权限ACL
1.针对单个用户设置
2.针对用户组设置
3.子文件/目录继承父目录的权限
查看系统是否支持ACL
tune2fs -1 /dev/sda2 | grep “Default mount ooptions:”
设置ACLsetfacl [-BkRd] [{-m|-x}acl 参数] 文件/目录名
配置权限
setfacl -m u:用户名:权限 文件名
setfacl -m g:组名:权限 文件名
setfacl [-bkndRLPvh] [{-m|-x}acl_spec] [{-M|-X} acl _spec] [{-m|-x}acl_file]file…
-m: 配置acl权限,不能和-x同时使用
-x: 删除ACL配置
-b:移除所有的ACL配置参数
-k:移除默认的acl参数
-R: 递归配置ACL参数
-d :配置默认ACL参数,只对目录有效,在该目录新建的数据会引用此默认
权限掩码
umask 数字 修改掩码 默认为022
文件权限 666 -022 644
目录权限 777 -022 755
特殊权限
SUID:s
当在文件所有的x权限上出现s时,表示当前这个文件具有SUID权限
1.SUID权限仅仅对二进制程序有效
2.执行者对于该程序有x权限
3.本权限仅仅在执行程序的过程中有效
4.程序的执行者具有该程序的拥有者的权限
如果当前这个文件属主位没有x权限,显示大写S
SGID: s
1.SGID也是对二进制文件有效
2.执行者对该程序具有可执行权限 x权限
3.主要用于目录之上
SBIT:t
1.主要针对与other位
2.作用于目录
3.在该目录下创建的文件或目录,只有自己和root可以删除 4.对文件无效
SUID、SGID、SBIT
字符表示法 s、s、t u+s
数字表示法 4、2、1
chmod 0755 1755
chattr 显示隐藏属性
a:append 只能够向文件添加数据,不能删除数据 i:当前文件不能被删除,改名,链接同时不能写入内容 A:atime时间不能修改
lsattr 列出文件隐藏属性
[:space:] ↩︎