FHS文件系统层级结构标准
正则表达式
基本正则表达式元字符
* 字符匹配
. :匹配任意单个字符
[] :匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
[:digit:]:数字
[[:digit:]]:匹配任意数字
[[:lower:]]小写字母
[[:upper:]]大写字母
* 匹配次数
匹配前面字符任意次数,包括0次
.*:匹配任意长度的任意字符
?:匹配前面字符0次或1次(如下图,\代表转义)
*:匹配1次或者多次
{m,n}:匹配前面字符至少m次至多n次
{0,n}:至少0次至多n次
{m,}:至少m次
* 位置锚定
^:行首锚定
< \b:词首锚定
b >:词尾锚定
* 分组和引用
():分组
(xy)(zd)ab\2
\1
用户、组的基本概念
用户和组
* 系统上每一个进程都是由一个特定的用户发起
* 系统上的文件都是由特定的用户拥有
* 用户对系统上的文件访问时,收到权限控制
* 与运行中的进程相关联的用户确定该进程可访问的文件和目录
用户:
用户标识符,密码
用户的分类
管理员
普通用户 分为系统用户和登录用户
组:
用户组、用户容器
用户和组的标识符:
UID:属主的ID,范围为0-65535
管理员用户:
root: 0
普通用户:1-65535
系统用户
CentOS 6:1-499
CentOS 7 :1-999
登录用户
CentOS 6:500-
CentOS 7 :1000-
名称解析:
用户名--------UID
/etc/passwd
GID属组的ID :范围为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
-r:修改组名
groupdel:删除组
groupdel [options] GROUP
groupdel 组名
useradd:创建用户
useradd [options] LOGIN
-u: 指定UID
-g: 指定基本组ID,
-G:指定用户的附加组,要求附加组事先存在
-c:添加注释信息
-d:指定用户的家目录,通过复制/etc/ske1目录,并改名
-s:指定用户的默认shell
-r:创建系统用户
useradss -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❌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 “PASSWD” | 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
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
最后一次修改时间:表示从某一个时间点开始,到用户组后一次修改口令的时间天数,一般情况下是从1970.1.1
Linux文件系统权限
权限对象
文件拥有者 (属主)
群组(用户组)
其他人
权限类型
d rwxr-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 (加法操作)
rwx权限说明
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=REILE FILE…
三类用户:
u 属主
g 属组
o 其他
a:所有
chmod [OPTION]… MODE[,MODE]… FILE
MODE表示法:
赋权表示法,rwx
u= u=r
g=
o=
a=
chmod u= ,g= ,o=
chmod a=
授权表示法
u+, u-
g+, g-
o+, o-
a+, a-
注意:只有用户自己修改自己的文件
chmod 777 filename
从属关系
chown,chgrp
-R:递归修改
chown username:groupname dirname
chown username: dirname
chown :groupname name chgrp groupname name
注意:只有管理员可以修改
进程安全上下文:
进程对文件访问权限模型:
进程的属主与文件的属主是否相同,如果相同,则应用的是属主权限。
否则,则检查进程的属主是否属于文件的属组,如果是,则应用属组的权限。否则使用other权限
基本权限ACL:
1、针对单个用户设置
2、针对用户组设置
3、子文件/目录继承父目录的权限
查看系统是否支持ACL
[ROOT@nebulalinux03 ~]# 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:递归配置ACL
* -d:配置默认的ACL参数,只对目录有效
setfacl -m u:用户名:rw /tmp/aclfile
getfacl /tmp/aclfile
权限掩码
umask
文件权限:
666-022
644
目录:
777-022
755
特殊权限
SUID:s
当在文件所有者的x权限上出现s时,表示当前这个文件具有SUID权限
1、SUID权限仅仅对二进制程序有效
2、执行者对于该程序有x权限
3、本权限仅仅在执行程序的过程中有效
4、程序的执行者拥有该程序的拥有者的权限
SGID:当文件所有者的属组上出现s s
1、SGID也是对二进制文件有效
2、执行者对该文件有可执行权限
3、主要用于目录之上:
SBIT: t
1、主要针对other位
2、作用于目录
3、在该目录下创建的文件或目录只有自己和root可删除
4、对文件无效
SUID,SGID,SBIT
字符表示法
s s t u+s
数字表示法
4 2 1
chmod 0755
1755 当前目录具有SBIT权限 书写时写在最前
chattr:添加隐藏属性
+a: append 只能够想文件添加数据,不能删除数据
+i: 文件不能被删除,改名,链接同时不能写入内容
+A:atime访问时间不可修改