0%

Linux权限与正则表达式

一、用户user

(一)令牌 token , identity
(二)Linux用户:Username/UID

​ 管理员:root,0

​ 普通用户:1-65535

​ 系统用户:1-499(centos6),1-999(centos7)——对守护进程获取资源进行权限分配

​ 登录用户:500+(centos6),1000+(centos7)——交互式登录

二、组group

(一)Linux组:Groupname/GID

​ 1.管理员组:root,0

​ 2.普通组:

​ 系统组:1-499(centos6),1-999(centos7)

​ 普通组:500+(centos6),1000+(centos7)

(二)Linux组的类别

​ 1.用户的主要组:用户必须属于一个且只有一个主组;

​ 组名同用户名,且仅包含一个用户,私有组。

​ 2.用户的附加组:一个用户可以属于零个或多个辅助组。

(三)Linux用户和组的主要配置文件
文件名 文件信息
/etc/passwd 用户及其属性信息
/etc/group 组及其属性信息
/etc/shadow 用户密码及其相关属性
/etc/gshadow 组密码及其相关属性
passwd文件格式:

1.login name:登录用名;

2.passwd:密码;

3.UID:用户身份编号;

4.GID:登录默认所在组编号;

5.GECOS:用户全名或注释;

6.home directory:用户主目录;

7.shell:用户默认使用shell。

(四)group文件格式

1.群组名称:就是群组名称;

2.群组密码:通常不需要设定,密码是记录在/etc/shadow

3.GID:就是群组的GID;

4.以当前组为附加组的用户列表(分隔符为逗号)

三、用户和组管理命令

1.用户管理命令:useradd(创建);usermod(修改);userdel(删除)

2.组账号维护命令:groupadd;groupmod;groupdel

3.切换身份:su username(不改变目录环境)

​ su - username

​ 退回原来身份:exit

4.修改用户密码:passwd [OPTIONS] username

修改组密码:gpasswd [OPTIONS] group

四、文件权限

(一)

​ r:读权限;w:写权限;x:执行权限

(二)文件属性操作

​ chown:设置文件的所有者;

​ chgrp:设置文件的属组信息;

​ chmod:修改文件权限

(三)默认权限

​ 1.umask值:可以用来保留在创建文件权限;

​ 2.非特权用户umask是002;root的umask是022;

​ 3.全局设置:/etc/bashrc 用户设置:~/.bashrc。

(四)特殊权限
名称 介绍 作用
SUID 当s这个标志出现在文件所有者的x权限上时,例如文件权限状态“-rwsr-xr-x”,此时就称为 Set UID,简称为SUID的特殊权限。 (1)SUID权限仅对二进制程序有效;(2)执行者对于该程序需要具有x的可执行权限;(3)本权限仅在执行该程序的过程中有效;(4)执行者将具有该程序所有者的权限。
SGID 当s标志出现在文件所有者的x权限时称为SUID,那么s出现在用户组的x权限时称为SGID。 (1)SGID对二进制程序有用;(2)程序执行者对该程序需具备x权限;(3)执行者在执行过程中会获得该程序用户组的支持;(4)一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组。
SBIT SBIT目前只对目录有效。 (1)当用户对此目录具有w和x权限时,即具有写入权限时;(2)当用户在该目录下创建新文件或目录时,仅有自己和root才有权力删除。
(五)访问控制列表

​ 1.ACL:Access Control List,实现灵活的权限管理;

​ 2.除了文件的所有者,所属组和其他人,可以对更多的用户设置权限;

​ 3.CentOS7默认创建的xfs和ext4文件系统具有ACL功能;

​ 4.ACL生效顺序:所有者,自定义用户,自定义组,其他人

五、文件查看

(一)文件查看命令

​ cat,tac,rev

(二)分页查看文件内容

​ more:分页查看文件;-d:显示翻页及退出提示;

​ less:一页一页地查看文件或STDIN输出;

(三)显示文本前或后行内容

​ head:-c #:指定获取前#字节;-n #:指定获取前#行(默认前十行);-#:指定行数

​ tail:-f:跟踪显示文件fd新追加的内容,常用日志监控;

​ tailf:类似tail -f,当文件不增长时并不访问文件。

(四)文本处理

​ grep:文本过滤(模式:pattern)工具

​ sed:stream editor,文本编辑工具

​ awk:Linux上的实现gawk,文本报告生成器。

六、正则表达式

(一)REGEXP

由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能。

(二)程序支持

grep sed awk vim less ngnix varnish等。

(三)分类

基本正则表达式:BRE

扩展正则表达式:ERE

(四)正则表达式引擎

采用不同算法,检查处理正则表达式的软件模式 PCRE(Perl Compatible Expressions)

(五)元字符分类
1.字符通配

“ . “:匹配任意单个字符

“ []”:匹配指定范围内的任意单个字符

“ ^”:匹配指定范围外的任意单个字符

[:digit:]:数字

[:alpha:]:字母

[:alnum:]:数字和字母

[[:digit:]]:匹配任意数字,

[[:lower:]]:匹配小写字母,

[[:upper:]]:匹配大写字母

2.匹配次数

(星):匹配 前面字符任意次数

.*:匹配任意长度的任意字符

\?:匹配前面的字符0次或1次

\ *:匹配一次或者多次

\ {m,n\ }:匹配 其前面的字符至少 m 次,至多 n 次

\ {0,n\ }:匹配至多n次

\ {m,\ }:至少m次

3.位置锚定

^:行首锚定,用于模式的最左侧

$:行尾锚定,用于模式的最右侧

^$:空行

^ [[:space:]]*$:空行或包括空白字符的行

词首锚定:\ < 或 \b,用于单词模式的左侧

词尾锚定:\ > 或 \b,用于单词模式的右侧

匹配完整单词:\ <索要匹配的单词\ >

4.分组

\ (\ ):将一个或者多个字符捆绑在一起,当做一个整体进行处理

\(xy\)\ (zd\ )ab\1:把xy当做第一组,把zd当做第二组,取第一组

\1:引用第一个分组

#查看分区利用率
[root@localhost ~]# df -h |grep "^/dev/sd" |grep -o '[[:digit:]]\+%' |grep -o '[[:digit:]]\+'
(六)egrep及扩展的正则表达式(基本不用加 \)

egrep = grep = -E

egrep [OPTIONS] PATTERN [FILE]

字符匹配: . 任意单个字符

​ [] 指定范围的字符

不在指定范围的字符