系统权限知识回顾
系统常见权限信息
1)r(4)读权限:
文件信息:内容信息可以读取
目录信息:查看目录数据信息
2)w(2):写权限
文件信息:内容信息可以编辑
目录信息:操作目录数据信息(删除数据/创建数据/移动数据/修改数据名称)
3)x(1):执行权限:
文件信息:文件可以进行执行 /etc/rc.local
目录信息:目录可以进行切换
chown更改属主属组命令
系统权限分配方式
rwx 第一组权限:分配给属主用户
rw- 第二组权限:分配给属组用户
r-- 第三组权限: 分配给其他用户
系统权限配置方法
rwx- 000~777
PS:系统常用权限位:9位权限位,实际是为12位
系统权限详细说明
文件权限总结
1)文件如果想正常编写,必须要有读权限
2)文件如果想正常执行,必须要有读权限
3)文件如果拥有执行权限,管理员用户拥有文件绝对权限
总结:对于文件来说,读取权限是最重要的,可以让写和执行权限有意义
目录权限总结:
1)目录没有任何权限信息,管理员用户拥有目录绝对权限
2)目录如果想正常查看,必须要有执行权限
3)目录如果想正常的操作,必须要有执行权限
总结:目录对于目录来说,执行权限时最重要的,可以让读和写权限有意义
最终结论
1)root用户在系统中属于无敌存在,只要文件有执行权限,可以随意操作文件和目录信息
疑问
1)当目录只有读权限时,属主用户查看信息为什么只能看见文件名称,不能看见文件属性信息?
提示:inode block
说明:
a)目录只有读权限,只能利用读权限查看目录block
b)目录需要有执行权限。才能进入到目录中,查看文件的inode获得属性信息
inode作用: 查看数据内容索引信息
存储: 文件属性信息/block指针信息
block作用: 真正存储数据内容信息
普通文件: inode 文件属性 指针信息
block 真正文件内容
目录文件: inode 目录属性 指针信息
block 目录下面数据名称
2)一个文件权限为777, 属主属组为oldboy, 但是oldboy用户无法操作管理此文件?
提示: 利用inode block, 理解系统数据文件读写原理 权限说明
说明: 对文件信息进行读写操作, 和文件本身权限有关/和文件所在目录路径权限也有关系
系统数据默认权限
文件默认权限:644(root)
目录默认权限:755(root)
如何修改默认权限:
文件默认权限: 644(root)
目录默认权限: 755(root)
如何修改默认权限:
umask: 0022
umask是奇数信息
文件默认权限: 666 - umask(033) = 63(+1)3(+1) == 644 文件做奇数运算位, 做完运算还需要在加1
目录默认权限: 777 - umask(033) = 744
umask是偶数信息
文件默认权限: 666 - umask(022) = 644
目录默认权限: 777 - umask(022) = 755
临时修改:
文件默认权限: 需求 600 666 - umask(066) = 600
需求 611 666 - umask(055) = 61(+1)1(+1) = 622
目录默认权限: 需求 700 777 - umask(077) = 700
永久修改:
vim /etc/profile
if [ $UID -gt 199 ] && [ “/usr/bin/id -gn
” = “/usr/bin/id -un
” ]; then
umask 002
else
umask 022
fi
解释01: 脚本判断语句信息
a 单分支判断语句: if 条件 then 操作 fi
b 双分支判断语句: if 条件 then 方案一操作 else 方案二操作 fi
解释02: 判断条件信息意思
a 条件判断有单一条件和多条件判断(并且关系 或者关系)
b 每个条件表达的意思
$UID -gt 199 : 判断当前用户UID数值是否大于199
“/usr/bin/id -gn
” = “/usr/bin/id -un
” : 当前登录系统用户名称和用户组名称是否一致
-gt 大于什么 >
-lt 小于什么 <
-eq 等于什么 ==
-ge 大于等于
-le 小于等于
-ne 不等于
系统用户提权方法
解释说明: 让普通用户可以获得管理员部分或者全部权利 皇帝root -大宝剑(sudo)- 平民 -大宝剑(sudo)-> 贪官
总结结论: 普通用户操作系统权限拒绝, 可以如何调整
修改文件或者目录权限 (权限位信息 chmod)
用户身份信息进行调整 (切换管理员身份 su -)
设置普通用户提权配置 (普通用户拥有管理员部分权限 sudo)
实现方式:
第一个里程: 编写提权配置文件
vim /etc/sudoers — visudo (语法检查)
100行 oldgirl ALL=(ALL) /usr/bincat /etc/shadow
01 02 03
01: 将管理员权限赋予给哪个普通用户
02: 进行权限统一集中管理 (跳板机服务 jumpserver)
03: 赋予普通用户权限信息
赋予权限方法:
a 赋予权限命令必须绝对路径信息
b 多个权限直接必须有分隔符号(利用,号分隔)
方法一:配置单一权限信息
方法二:配置多个权限信息
oldgirl ALL=(ALL) /usr/bin/cat /etc/shadow, /usr/bin/rm /etc/hosts
oldgirl ALL=(ALL) /usr/bin/cat, /usr/bin/rm
oldgirl ALL=(ALL) /usr/bin/, /usr/sbin/
oldgirl ALL=(ALL) /usr/bin/, /usr/sbin/, !/usr/bin/rm, !/usr/sbin/visudo
方法三: 免密码进行提权操作
oldgirl ALL=(ALL) NOPASSWD: /usr/bin/, /usr/sbin/, !/usr/bin/rm, !/usr/sbin/visudo
第二个里程: 切换到普通用户查看自己提权信息
[oldgirl@linux67 ~]$ sudo -l
User oldgirl may run the following commands on linux67:
(ALL) /usr/bin/cat /etc/shadow
第三个里程: 测试提权操作是否成功
sudo cat /etc/shadow