一,基本正则表达式,grep
1,基本正则表达式元字符
(1)字符匹配
. | 匹配任意单个字符 |
---|---|
[] | 匹配指定范围内的任意单个字符 |
[^] | 匹配指定范围外的任意单个字符 |
[[:digit:]] | 匹配数字 |
[[:lower:]] | 匹配小写字母 |
[[:upper:]] | 匹配大写字母 |
[[:alpha:]] | 匹配所有字母 |
(2)匹配次数
* | 与前面字符相关的任意次数 |
---|---|
.* | 匹配任意长度的任意字符 |
\? | 匹配前面字符的0或1次 |
\* | 匹配一次或者多次 |
\{m,n\} | 匹配至少m次,至多n次 |
\{0,n\} | 匹配至多n次 |
\{m,\} | 匹配最少m次 |
注:\在使用时要加上引号
(3)位置锚定
^ | 行首锚定 |
---|---|
$ | 行尾锚定 |
^$或 ^ [[:speace:]] $ | 空行 |
< 或 \b | 词首锚定 |
> | 词尾锚定 |
(4)分组和引用
引用:\(\)
[root@demo5-6 ~]# cat test
he loves his lovers
he likes his liker
she like her lovers
she like her liker
[root@demo5-6 ~]# grep '\(l..e\).*\1' test
he loves his lovers
he likes his liker
she like her liker
实例:
[root@demo5-6 ~]# grep '\(l..e\).*\1' test
[root@demo5-6 ~]# grep -v /bin/bash$ /etc/passwd 不以结尾
[root@demo5-6 ~]# grep "\<[0-9]\{2,3\}\>" /etc/passwd 匹配两位或3位数
二,用户,组的基本概念
1,用户和组
系统上每一个进程都是有一个特定用户发起的
系统上文件都是由特定用户拥有的
用户对系统上的文件访问时,受到权限控制
与运行中的进程相关联的用户确定该进程可访问的文件和目录
2,用户:
用户标识符,密码
用户分类:
管理员
普通用户
3,组:
用户组,用户容器
组类别:
用户的基本组
用户的附加组
4,用户和组的标识符
(1)uid—属主(/etc/passwd) 0-65535
管理员用户:root 0
普通用户: 1-65535
系统用户
CentOS6:1-499
CentOS7:1-999
登陆用户
CentOS6:500-
CentOS7:1000-
(2)gid—属组(/etc/group) 0-65535
系统用户
CentOS6:1-499
CentOS7:1-999
登陆用户
CentOS6:500-
CentOS7:1000-
5,认证信息:密码
(1) /etc/shadow用户密码
(2)/etc/gshadow 组密码
(3) 密码策略:
使用随机密码
最短长度不低于8位
应该使用小写字母,大写字母,数字,标点符号四类中至少三类
定期更新
三,用户总管理
安全上下文:进程是以其发起者的身份运行,对进程的访问权限,取决于发起此进程的用户权限;
1,组
(1)groupadd增加组用户
-g GID:指定组ID,默认为上一个组ID+1
-r :创建一个系统组
(2)groupmod 修改组属性
-g:修改组ID
-n:修改组名
(3)groupdel删除组(groupdel 组名)
2,用户
(1)useradd 创建用户
-u :指定UID
-g :制定基本组ID
-G:指定用户的附加组,附加组要事先存在
-c:添加注释信息
-d:指定用户的家目录,通过复制/etc/skel目录,并改名
-s:指定用户的默认Shell
-r:创建系统用户
(2)useradd -D 创建用户的配置
(3)userdel 删除用户(userdel 登录名)
-r:删除用户时一并删除家目录
(4)usermod 修改用户属性
-u :修改用户ID
-g:修改用户的基本组
-G:修改用户的附加组
-c:修改注释条件
-d:修改家目录
-m:与-d一起使用,用于将原来家目录的文件移动到新的家目录
-a:与-G一起使用,追加用户的附加组
-l:修改用户名
-s:修改默认shell
-L:锁定用户密码
-U:解锁用户密码
3,passwd修改密码
(1)passwd 密码:直接修改自己的密码
(2)passwd username:修改指定用户密码,仅root用户有此权限
-l:锁定用户
-d:清除密码串
-e DATE:过期日期
-i DAYS:非活动期限
-n DAYS:密码最短使用权限
-x DAYS:密码最长使用期限
-w DAYS:告警期限
4,gpasswd:
(1)-a username:向组内添加用户
(2)-d username:从组内删除用户
5,newgrp:临时切换指定组的组为基本组
6,change:更改密码过期信息
-d:指定密码最后修改日期
-E:密码到期日期
-w:密码过期前的警告天数
-m:密码可以更改的最小天数
-M:密码可以保持有效的最大天数
7,id:
-u:显示UID
-g:显示GID
-G:显示用户的所有组ID
-n:显示名字
例如:
/etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码(x占位符):用户标识符:组标识符:注释信息:主目录:登陆shell
/etc/passwd
root$6$bDAKD3bEXeceK27$cRvKT2F6wSzRnltBaUeEXzgeItRN1906ERor0M8WZR36bfy7oacomPk2rkhX6zo8AQg52JwrWKFQPXiT1BmyD.:18099:0:99999:7:::
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
注:最后一次修改时间:表示从某一个时间点开始,到用户组最后一次修改指令的时间天数,一般1970.1.1
例如:
[root@demo5-6 ~]# groupadd -g 1000 ttt
[root@demo5-6 ~]# tail -1 /etc/group
ttt:x:1000:
[root@demo5-6 ~]# groupmod -g 999 ttt
[root@demo5-6 ~]# tail -1 /etc/group
ttt:x:999:
[root@demo5-6 ~]# groupmod -n aaa ttt
[root@demo5-6 ~]# tail -1 /etc/group
aaa:x:999:
[root@demo5-6 ~]# groupdel aaa
[root@demo5-6 ~]# tail -1 /etc/group
slocate:x:21:
四,Linux文件系统权限
1,权限对象
文件拥有者(属主),owner
群组(属组),group
其他(other)
2,权限类型
d rwxr-xr-x. 2 root root 4096 Jul 27 00:52 ccc
文件类型 r:4
w:2
x:1
如:rw-rwx-r 674(作加法)
(1)rwx权限说明:
1,对文件而言:
r:可以获取文件数据
w:可以修改文件数据
x:可以将此文件运行为进程
2,对于目录而言
r:可以使用ls命令获取文件列表
w:可以修改文件列表,及创建和删除
x:表示可以cd次目录,并且可以使用ls- l获取文件的详细属性
(2)权限判断逻辑
文件:前提条件,用户能进入到文件所在目录
删除文件:看用户是否具备对目录的w权限
1,判断用户身份,owner-group-other
创建文件:看用户是否具备对目录的w权限
1,判断用户身份,owner-group-other
目录:前提条件:判断用户是否能够成功进入目录所在目录,x
删除目录:看用户是否具备对目录的w权限
1,判断用户身份,owner-group-other
创建目录:看用户是否具备对目录的w权限
1,判断用户身份,owner-group-other
(3)权限管理命令(chmod)
a,三类用户:
u属主,g属组,o其他,a所有
b,MODE表示法:
赋权表示法:rwx
u=
授权表示法:
u+,u-,新增,减
注意·,只有用户自己修改自己的文件
c,从属关系:chown,chgrp
用法: chown username:grouname 目录名
chown username: 目录名
chown :grouname 目录名
chgrp groupname 目录名
3,进程对文件的访问权限模型:
进程的属主与文件的属主是否相同,若相同,则应用文件的属主 权限;
否则,则检查进程的属主是否属于文件的属组,如果是,则应用属组的权限,否则,则应用other权限;
4,基本权限ACL(+)
(1)应用:
针对单个用户设置
针对用户组设置
子文件/目录继承父目录的权限
(2)setfacl的参数
-m:配置acl权限(不能和-x连用)
-x:删除acl权限
-b:移除acl权限
-R:递归配置acl
-d:配置默认的acl参数,只对目录有效
例如:
[root@demo5-6 ~]# setfacl -m u:gentooo:rw /tmp/file 在文件中配置acl权限
[root@demo5-6 ~]# getfacl /tmp/file 查看配置
[root@demo5-6 ~]# setfacl -m d:u:gentooo:rw /tmp/test2在文件夹中配置acl权限
只能修改不能新增。
5,权限的掩码(umask)
文件权限:666-022=644
目录权限:777-022=755
6,特殊权限:
(1)SUID:当在文件所有者的x权限上出现s时,表示当前这个文件具有SUID权限
1,SUID权限仅对二进制程序有效
2,执行者对于程序有x权限
3,本程序仅在执行程序的过程中有效
4,程序的执行者拥有该程序的拥有者的权限
不能放在脚本和目录上。
(2)如果当球按这个文件属主位没有x权限,显示大写S
SGID:属组
1,SGID权限仅对二进制程序有效
2,执行者对于程序有x权限 可执行权限
3,主要用于目录上:
继承父目录的属组
(3)SBIT:other
1,主要针对于other位
2,作用于目录
3,在该目录下创建的新的文件和目录,只有自己和root可以删除
4,对文件无效
(4)SUID,SGID,SBIT设置
字符表示法:s s t
数字表示法:4 2 1(书写放在最前面)
7,chattr:增加隐藏属性
a:append 只能向文件添加数据,不能删除数据(不能覆盖,只能追加)
i:文件不能删除,改名,链接,同时不能写入内容
A:atime 访问时间不能修改
[root@demo5-6 ~]# touch /tmp/test2
[root@demo5-6 ~]# ll /tmp/test2
total 8
-rw-rw-r--+ 1 root root 3 Jul 28 23:04 test3
[root@demo5-6 ~]# chattr +A /tmp/test2
[root@demo5-6 ~]# touch /tmp/test2
[root@demo5-6 ~]# ll /tmp/test2
total 8
-rw-rw-r--+ 1 root root 3 Jul 28 23:04 test3
8,lsattr:列出隐藏属性
[root@demo5-6 ~]# lsattr test
-------------e- test
注:-e表示为普通文件