RHCE高级权限和文件系统
一:高级用户组和用户权限
1:密码策略
1:含义
密码策略就是设置密码的一些属性,如什么时候密码过期等
修改的就是这个配置文件/etc/shadow这里面的参数

user2:!!:19768:0:99999:7:::
第一个字段:用户名
第二个字段:密码占位符,!!表示没有密码,!表示密码被锁定了,*有密码
第三个字段:1970年1月1日到现在最近修改密码过的天数
第四个字段:至少过了多少天,才能修改密码;0表示没有期限
第五个字段:使用多久后,才能修改密码 ;99999表示没有没有期限
第六个字段:密码过期前的警告天数
第七个字段:密码失效天数,就是密码过期后,还能使用多久
第八个字段:密码禁用日期
2:操作
chage 用户
选项:
| -d | 将最近一次修改密码的时间设为日期 |
| -E | 密码过期日期 |
| -W | 密码过期前警告天数(-M天数之后的) |
| -m | 至少过了多少天,才能修改密码 |
| -M | 过了多少天后,必须要修改密码 |
| -I | 过期多少天后,密码失效 |
| -l | 展示用户的信息 |
chage -d 0 用户名 这样操作后,密码就必须要修改
2:文件特殊权限和掩码
1:掩码
1)简介
作用:控制用户创建文件和目录的默认权限,
默认掩码的是0022,默认创建目录的最大权限为777,默认创建文件的最大权限为666,
文件的默认权限=666-022=644
目录的默认权限=777-022=755
0022:第一个为特殊权限,后面依次是用户,拥有组,其他用户
2)案例
1、创建文件,拥有人有读写的权限,拥有组有写的权限,其他人有写的权限;目录,拥有人有读写的权限
#计算知 666-622=044 777-733=044 掩码为044,通过修改用户的变量文件即可 [root@server ~]# vim .bashrc umask 044 [root@server opt]# ll total 0 drwx-wx-wx. 2 root root 6 Feb 28 20:28 dir -rw--w--w-. 1 root root 0 Feb 28 20:28 file [root@server opt]#
2、umask值为033
设置umask值为033,然后切换用户 创建文件和文件夹 [root@server opt]# umask 0033 [root@server opt]# ll total 0 drwxr--r--. 2 root root 6 Feb 28 20:35 111 -rw-r--r--. 1 root root 0 Feb 28 20:35 file [root@server opt]#
创建文件本来是633的,结果变成了644,然后通过计算的话,会不一样,所以以目录的权限为主
3)总结
1:如果umask的值有冲突的话,以目录的权限为主,因为默认情况下,创建的文件如果有x的权限的话,会自动的加上1,或者减去1
2:9版本之前的话,会有root和普通用户的掩码不一样,su 用户 触发的是/etc/bashrc su - 用户触发的是/etc/login.defs
2:特殊权限
特殊权限一共有3个suid和sgid和sbit
1)suid(s或者4)
suid只对文件有意义,对于目录而言没有意义,
作用:当一个文件有suid的权限时,执行这个文件的时候以文件的拥有人的身份去执行,suid只能设置到二进制的文件上面,对于脚本文件没有用
例如:/usr/bin/passwd就是设置了suid的权限
设置的方法是:chmod u+s 文件或者chmod 4000(建议不使用数字)
如果是大S的话,代表着没有这个文件没有x的权限,如果是小写的s的话,那就是原文件有x的权限
2)sgid(s或者2)
作用:
对于文件:如果二进制文件有sgid的权限,执行的时候,以文件的拥有组执行
对于目录:如果目录有sigd的权限,那么此目录下创建的文件和子目录都会继承父目录的权限(文件和目录继承组的拥有组,子目录也继承sgid的权限)
设置的方法:chmod g+s 文件或者 chmod 2000
如果拥有组是大S的话,代表着没有这个文件没有x的权限,如果是小写的s的话,那就是原文件有x的权限
3)sbit(t或者1)
作用:对于目录有用
目录有sbit的权限的话,目录下创建的文件和目录只能由自己来修改,也不能修改别人在此目录下创建的文件和目录,(root除外)
设置的方法:
chmod o+t 目录 或者 chmod o+1 目录
如果拥有组是大T的话,代表着没有这个文件没有x的权限,如果是小写的t的话,那就是原文件有x的权限
可以做一个贡献目录出去
3:acl权限
1:简介
作用:满足了普通设置权限的问题,精确的设置某个用户的权限
1)选项
| -m | 修改权限 |
| -b | 删除所有的acl的权限 |
| -x | 删除某个用户的权限 |
| -R | 递归设置权限 |
| -k | 删除所有的默认权限 |
| -d | 设置默认的权限 |
| -x d:g:拥有组 文件 | 删除指定用户的默认权限 |
| -m m::rw | 设置acl掩码的权限 |
2)案例
1、设置q7用户对file文件有rw的权限,其余用户没有
[root@server opt]# ll total 0 -rw-r-----. 1 root root 0 Feb 28 21:23 file [root@server opt]# setfacl -m u:q7:rw file [root@server opt]# getfacl file # file: file # owner: root # group: root user::rw- user:q7:rw- group::r-- mask::rw- other::--- [root@server opt]#
2、删除q7用户的权限
[root@server opt]# setfacl -b file
3、有效权限
[root@server opt]# setfacl -m m::r file [root@server opt]# getfacl file # file: file # owner: root # group: root user::rw- user:q7:rw- #effective:r-- group::r-- mask::r-- other::--- [root@server opt]# setfacl -m m::rwx file [root@server opt]# getfacl file # file: file # owner: root # group: root user::rw- user:q7:rw- group::r-- mask::rwx other::--- [root@server opt]#
按照有效权限为主,设置了掩码为rwx,但是用户的权限为rw,因为默认的情况下,不能创建带有x的文件
3)acl的继承
创建的文件和目录的时候就会自动的继承目录acl默认权限,设置默认权限
[root@server opt]# setfacl -m d:u:q7:rwx dir/ [root@server opt]# getfacl dir/ # file: dir/ # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:user:q7:rwx default:group::r-x default:mask::rwx default:other::r-x [root@server opt]# cd dir/ [root@server dir]# touch file1 [root@server dir]# mkdir dir1 [root@server dir]# getfacl * # file: dir1 # owner: root # group: root user::rwx user:q7:rwx group::r-x mask::rwx other::r-x default:user::rwx default:user:q7:rwx default:group::r-x default:mask::rwx default:other::r-x # file: file1 # owner: root # group: root user::rw- user:q7:rwx #effective:rw- group::r-x #effective:r-- mask::rw- other::r-- [root@server dir]#
目录会自动的继承,但是文件的话会去掉x的权限
3)总结
1:在设置acl权限的时候,拥有组的权限不在是原来的权限,而是掩码的权限(有效权限),如果使用chmod来设置的拥有组的权限的话,就是在设置掩码的权限,按照有效权限来设定
2:acl的继承,目录的掩码最小为rx(这样才有意义),文件的最大掩码为rw(不能带有x的权限),永远不可能继承出一个带有x的权限的文件
3:文件的优先级
文件的拥有人;文件的acl用户;文件的拥有组;文件acl的拥有组;文件的其他人
4:acl的掩码,就是第一次设置acl的权限,当然,改变了掩码后,acl的有效权限也会被改变
当你设置的acl权限大于你想要设置掩码的权限时,以掩码的权限为主
acl=rwx m=r 最后还是r
当你设置的acl权限小于你想要设置掩码的权限时,以acl的权限为主,acl=r m=rwx 最后还是r
4:监控登陆
就是可以查看谁登陆了自己的系统
w:可以谁登陆了系统,登陆了几个用户
last:登陆和重启的记录
lastb:尝试登录失败
lastlog:最近登录日志
踢出用户的操作:
1)首先查看自己的终端
ps -a
2)使用w查看登录的用户
3)然后使用 pkill -9 -t 终端 就可以踢掉了
5:sudo提权
作用:就是使普通用户通过sudo提权到指定用户
1:选项
| -u | 以这个用户执行命令 |
| -l | 查看当前用户sudo的情况 |
| -i | 切换到root用户 |
| -k | 下次使用sudo,强制输入密码,默认5分钟内不用输入密码了 |
2:用法
配置文件在/etc/sudoers和/etc/sudoers.d目录,2个里面都可以编写
1)提权用户的格式:
root ALL=(ALL) ALL
q7 ALL=(root) /usr/sbin/useradd
用户名 主机名=(提权到的用户) 命令
注意:
多个用户,主机名,提权用户,命令都可以使用逗号隔开
使用的方法:
[q7@server ~]$ sudo useradd q1111 [q7@server ~]$ id q1111 uid=1004(q1111) gid=1004(q1111) groups=1004(q1111) [q7@server ~]$
2)提权用户组的格式:
在组上面加上百分号即可
%q7 ALL=(root) /usr/sbin/userdel
然后让提权的用户加入到这个组里面去即可,实现了提权
3)免密提权
q7 ALL=(root) NOPASSWD:/usr/sbin/useradd
在命令的前面输入大写的NOPASSWD即可
4)检查提权配置文件
使用sudo -l 可以检查
使用sudoedit 配置文件
使用visudo 配置文件
5)sudo别名的设置
用于要设置很多的用户,或者用户组,很多的命令,方便简化操作,管理等
主机别名:Host_Alias
用户别名:User_Alias
提权到别的用户别名:Runas_Alias
命令的别名:Cmnd_Alias
User_Alias USERS=user1,user2 USERS ALL=(root) ALL
别名必须是大写的
3:缺点
sudo是一个瞬时性的,不能进入到目录里面去
[root@server tmp]# su - q7 [q7@server ~]$ sudo cd /root [sudo] password for q7: [q7@server ~]$ pwd /home/q7 [q7@server ~]$ cd /root -bash: cd: /root: Permission denied [q7@server ~]$ sudo cd /root [q7@server ~]$ pwd /home/q7 [q7@server ~]$ sudo cd /mnt/ [q7@server ~]$ pwd /home/q7 [q7@server ~]$
可以直接使用cd来进入目录
4:总结
1)在配置文件按照格式配置好用户的权限即可
2)别名一定要使用大写即可
二:文件系统
1:设备的命名
非常的重要
块设备的形式:u盘,机械硬盘,移动硬盘,这些设备都是专门存储文件的存储介质,块设备无法直接使用,需要格式化才能使用
1)IDE设备
/dev/hda
2)SCISC SATA SSD设备
/dev/sda
3)virt10
/dev/vda
4)xen
/dev/xcda1
5)nvme固态卡
/dev/nvmen01
6)光驱
/dev/sr0
7)逻辑卷设备
/dev/mapper/root
这些设备要熟知
2:文件系统
1:基础知识
概念:一个块设备想要保存文件,则这个设备必须要有文件系统才行,文件实际上是存放到文件系统上面的,文件系统是块设备上的,存放形式和结构
格式化:创建文件系统,存储数据的
文件系统的类型:
1:本地文件系统:windows中的NTFS文件系统。u盘的FAT系列;exfat专门做移动介质存储的文件系统
linux中:ext系列,xfs系列,日志文件系统,主流(rhel7开始,默认)
2:网络文件系统:通过网络实现目录的共享
NFS:能实现linux和linux之间的共享
cifs:windows和windows之间,linux和window之间目录的共享ip地址
3:集群网络系统:多个主机做一个分配池
ceph:分布式存储
GFSFS:google集群文件系统
VIMS:华为的集群文件系统
4:光盘文件系统
iso9600光盘独有的文件系统
2:inode和block
1:基础
文件有2个部分组成:元数据+数据
元数据(inode):描述数据的数据,一个文件系统的属性信息,文件的权限,大小,时间戳等
数据:指的是文件系统中的块,存放的就是实际数据的内容
文件=inode+block
块:就是多个连续的扇区的组合,直接将文件存储在这个块里面就可以了,
关于块的大小:太大了,存储一个小的文件,比较浪费;太小了的话,占用多个block,,所以要适合的block
inode:就是一个指针,通过inode表,查找block,系统识别的就是这个inode号,
2:文件和目录的关系
系统是通过目录的数据来查找的文件名和inode编号的映射关系
文件=元数据+数据
数据:保存的实际数据
目录=元数据+数据
目录数据:保存文件名和inode号
例子:寻找/etc/passwd这个文件
1)首先获取/etc/目录的inode编号,根据目录的数据来查找passwd文件名和inode的映射关系,找passwd文件的inode号
2)读取inode表,找到passwd对应底层的block,判断文件的权限
3)如果有读的权限,则读取block的内容
3:mv,cp,rm与inode关系
1:mv和inode的关系
在同一个文件系统内,移动的时候,inode编号不会发生改变,仅仅移动了inode编号和文件名的映射关系,速度比较的块
在不同的文件系统中,inode编号会发生改变,实际上就是将文件拷贝到目标的文件系统中,然后删除源文件的inode,所以速度比较的慢
2:cp和inode的关系
无论是在同一个文件系统还是不同的文件系统中,inode编号都会发生改变
3:rm和inode的关系
删除的文件的时候,删除的是文件名和inode的映射关系,就无法识别到,所以没有了该文件
但是里面的文件的内容还是存在的,block处于释放的状态的,如果,下一次创建文件的时候,用到了这个inode的话,那么原来的之前的数据就会删除掉
找回误删除的文件:
首先不要继续写入数据,通过第三方的工具实现文件的恢复
xfs系列:xfsdump和xfsrestore(先备份在恢复)
ext系列:extundelete 和dump 和 restore 都是先备份在恢复
3:硬链接和软连接
1:硬链接
多个文件inode指向同一个block
不能跨越文件系统创建,因为inode号不一样
格式:ln 源文件 硬链接文件
图:硬链接和软连接

系统上有几个硬链接文件,相当于系统上有几个同步备份的文件,只有硬链接的数量为0,文件才是真正的被删除掉
2:软连接
类似于快捷方式,就是一个文件指向另外一个文件,然后指向block
格式:ln -s(soft) 源文件 软连接文件
注意:
1)建立的软连接的文件实际上有源文件的权限为主
2)源文件没有的话,那么这个链接文件也就没有用了,就会出现链接文件是红色的情况,创建源文件出来即可
3)在同一个系统中创建的inode不同
4)尽量写绝对路径
4:文件归档和压缩
1:基础
linux的压缩包=打包+压缩
注意只能对文件进行压缩,不能对目录进行压缩,可以先对目录进行打包的操作变成文件再来进行压缩,压缩只对于文件而言
打包和解包的权限不变,属性也不会改变
打包的操作:更加推荐使用相对路径
tar 选项 打包后的文件名 源文件
选项:
| -c | 打包的操作 |
| -f | 包名 |
| -x | 解压 |
| -v | 显示详细的信息 |
| -C | 解压缩的路径 |
| -z | 使用zip进行压缩 |
实例:
root@server tmp]# tar -czf etc.gz /etc/ tar: Removing leading `/' from member names [root@server tmp]# ll total 5648 -rw-r--r--. 1 root root 5780681 Feb 29 21:40 etc.gz [root@server tmp]# tar -xzf etc.gz [root@server tmp]# ls etc etc.gz
2:压缩工具:
gzip|gunzip,bzip2|bunzip2,xz|xunz 压缩后文件的大小不一样了
czf cjf cJf
保留原来的包 加上 -k 包名
[root@server tmp]# tar -cf etc.tar /etc tar: Removing leading `/' from member names [root@server tmp]# ll total 24640 -rw-r--r--. 1 root root 25231360 Feb 29 21:45 etc.tar [root@server tmp]# gzip -k etc.tar [root@server tmp]# ll total 30288 -rw-r--r--. 1 root root 25231360 Feb 29 21:45 etc.tar -rw-r--r--. 1 root root 5780689 Feb 29 21:45 etc.tar.gz
注意后缀名,不能一样,一样话不能进行压缩
注意:
1)打包和压缩可以在一起,tar -czf 包名 原路径
5:文件挂载
1:基础
可以使用baobab查看图形化
df:查看文件系统的使用情况
选项:
| -i | 查看inode号 |
| -T | 查看文件系统的类型 |
| -h | 显示单位 |
常用的选项:df -hT
sh命令:查看目录的大小
[root@server tmp]# du -sh /etc 27M /etc
-s:显示目录汇总的大小
-h:显示单位
ll:查看文件的大小
2:mount和umount
当你有了文件系统后,需要挂载才能对文件系统写入东西,挂载点是访问的入口
格式:mount 挂载设备 挂载点------>>>挂载文件系统,才能写入数据,类似于u盘
umount 挂载设备或者挂载点 ---->>>>取消挂载

浙公网安备 33010602011771号