权限管理
笔试题笔试题:
1.描述linux系统从开机到登陆界面的启动过程(记时2分钟)
解答:
简述:
1.开机BIOS自检
2.MBR引导
3.grub引导菜单
4.加载内核kernel
5.启动init进程
6.读取inittab文件,执行rc.sysinit,rc等脚本
7.启动mingetty,进入系统登陆界面
1.Linux如何知道用户对应文件的权限
第一步: root用户在/tmp目录创建test.txt
[root@oldboyedu ~]#ll /tmp/
total 0
[root@oldboyedu ~]#touch /tmp/test.txt
[root@oldboyedu ~]#ll /tmp/
total 0
-rw-r--r-- 1 root root 0 Jul 19 08:46 test.txt
第二步: 使用oldboy用户登录操作系统
第三步: 确定oldboy用户对test.txt的权限
[root@oldboyedu ~]# su - oldboy
Last login: Wed Jul 19 08:39:41 CST 2023 on pts/1
[oldboy@oldboyedu ~]$ cd /tmp/
[oldboy@oldboyedu tmp]$ ll
total 0
-rw-r--r-- 1 root root 0 Jul 19 08:46 test.txt
判断权限的依据:
1.当前登录的用户是谁: oldboy
2.oldboy用户和文件的关系
3.通过关系找到对应的权限位 所以oldboy用户对应test.txt权限位的后三位 r-- 可读
2.RWX对应数字
r 4
w 2
x 1
rwxr--r-- 744
rw-r-xr-x 655
rw------- 600
777 ---> rwxrwxrwx
741 ---> rwxr----x
3.权限的修改
9位权限位表示方式:
属主: u user
属组: g group
陌生人: o other
授权语法: chmod
chmod +r file # 增加权限
chmod -r file # 取消r权限
案例1.授权1.txt属主x权限
[root@oldboyedu ~]#touch 1.txt
[root@oldboyedu ~]#ll
total 0
-rw-r--r-- 1 root root 0 Jul 19 08:55 1.txt
[root@oldboyedu ~]#chmod u+x 1.txt
[root@oldboyedu ~]#ll 1.txt
-rwxr--r-- 1 root root 0 Jul 19 08:55 1.txt
案例2.1.txt属主去掉x权限
[root@oldboyedu ~]#chmod u-x 1.txt
[root@oldboyedu ~]#ll 1.txt
-rw-r--r-- 1 root root 0 Jul 19 08:55 1.txt
案例3.给1.txt其他位置陌生用户授权w权限
[root@oldboyedu ~]#chmod o+w 1.txt
[root@oldboyedu ~]#ll 1.txt
-rw-r--rw- 1 root root 0 Jul 19 08:55 1.txt
案例4.给每个位置增加x权限
[root@oldboyedu ~]#chmod ugo+x 1.txt
[root@oldboyedu ~]#ll
total 0
-rwxr-xrwx 1 root root 0 Jul 19 08:55 1.txt
其他表示所有写法:
ugo 表示所有
+x 默认表示所有
a+x 表示所有
[root@oldboyedu ~]#chmod -x 1.txt
[root@oldboyedu ~]#ll 1.txt
-rw-r--rw- 1 root root 0 Jul 19 08:55 1.txt
[root@oldboyedu ~]#chmod a+x 1.txt
[root@oldboyedu ~]#ll
total 0
-rwxr-xrwx 1 root root 0 Jul 19 08:55 1.txt
去掉属组和陌生人的x权限
[root@oldboyedu ~]#chmod go-x 1.txt
[root@oldboyedu ~]#ll
total 0
-rwxr--rw- 1 root root 0 Jul 19 08:55 1.txt
等号= 为覆盖
[root@oldboyedu ~]#ll
total 0
-rw---x--- 1 root root 0 Jul 19 08:55 1.txt
drw------- 2 root root 19 Jul 19 09:03 oldboy
[root@oldboyedu ~]#chmod g=rwx 1.txt
[root@oldboyedu ~]#ll
total 0
-rw-rwx--- 1 root root 0 Jul 19 08:55 1.txt
drw------- 2 root root 19 Jul 19 09:03 oldboy
第二种修改权限的方式: 使用数字表达式修改 常用 必须掌握核心
[root@oldboyedu ~]## 授权为rw-r--r--
[root@oldboyedu ~]#chmod 644 1.txt
[root@oldboyedu ~]#ll
total 0
-rw-r--r-- 1 root root 0 Jul 19 08:55 1.txt
案例2: 授权1.txt rw-------
[root@oldboyedu ~]#chmod 600 1.txt
[root@oldboyedu ~]#ll
total 0
-rw------- 1 root root 0 Jul 19 08:55 1.txt
案例3: 授权1.txt rwxr-xr-x
[root@oldboyedu ~]#chmod 755 1.txt
[root@oldboyedu ~]#ll
total 0
-rwxr-xr-x 1 root root 0 Jul 19 08:55 1.txt
案例4: 递归授权目录及目录以下所有文件为600
[root@oldboyedu ~]#chmod -R 600 ./*
[root@oldboyedu ~]#ll
total 0
-rw------- 1 root root 0 Jul 19 08:55 1.txt
drw------- 2 root root 19 Jul 19 09:03 oldboy
[root@oldboyedu ~]#ll oldboy/
total 0
-rw------- 1 root root 0 Jul 19 09:03 2.txt
4.rwx对于文件的作用
准备两个窗口: 一个root用户 一个oldboy用户
创建/oldboyedu目录
[root@oldboyedu ~]#mkdir /oldboyedu
创建/oldboyde/{1..3}.txt
[root@oldboyedu ~]#touch /oldboyedu/{1..3}.txt
[root@oldboyedu ~]#ll /oldboyedu/
total 0
-rw-r--r-- 1 root root 0 Jul 19 09:11 1.txt
-rw-r--r-- 1 root root 0 Jul 19 09:11 2.txt
-rw-r--r-- 1 root root 0 Jul 19 09:11 3.txt
授权文件属主属组为oldboy用户
[root@oldboyedu ~]#chown oldboy.oldboy /oldboyedu/*
[root@oldboyedu ~]#ll /oldboyedu/
total 0
-rw-r--r-- 1 oldboy oldboy 0 Jul 19 09:11 1.txt
-rw-r--r-- 1 oldboy oldboy 0 Jul 19 09:11 2.txt
-rw-r--r-- 1 oldboy oldboy 0 Jul 19 09:11 3.txt
在oldboy用户下进入/oldboyedu目录进行测试
r对于文件的作用:
修改权限为r权限
[root@oldboyedu /oldboyedu]#chmod u=r 1.txt
[root@oldboyedu /oldboyedu]#ll
total 4
-r--r--r-- 1 oldboy oldboy 14 Jul 19 09:13 1.txt
特点:
1) 可以查看文件
2) 默认不能修改文件 但是可以强制
3) 不能执行(执行文件 ./1.txt )
w权限对于文件的作用:
修改权限
[root@oldboyedu /oldboyedu]#chmod u=w 1.txt
[root@oldboyedu /oldboyedu]#ll 1.txt
--w-r--r-- 1 oldboy oldboy 17 Jul 19 09:23 1.txt
特点:
1) 无法查看文件内容
2) 无法vim写入 可以使用echo追加的方式
3) 无法执行
如果正常写入内容到文件必须rw配置
rw权限是文件的最高权限
x权限:
授权
[root@oldboyedu /oldboyedu]#chmod u=x 1.txt
[root@oldboyedu /oldboyedu]#ll 1.txt
---xr--r-- 1 oldboy oldboy 21 Jul 19 09:29 1.txt
特点: 啥都干不了
想要拥有文件的执行权限必须和r组合: r-x
[root@oldboyedu /oldboyedu]#chmod u=rx 1.txt
[root@oldboyedu /oldboyedu]#ll 1.txt
-r-xr--r-- 1 oldboy oldboy 21 Jul 19 09:29 1.txt
[oldboy@oldboyedu oldboyedu]$ ./1.txt
/oldboyedu
1.txt 2.txt 3.txt
hehe
/oldboyedu
小结:
r单独可以表示文件的可读 w和x单独是没有任何意义
rw- 表示文件的最高权限 可读可写
r-x 表示文件可以执行
rwx 表示可读可写可执行(脚本文件需要rwx 普通文件只需要rw-)
5.rwx对于目录的作用
[root@oldboyedu /oldboyedu]#cd
[root@oldboyedu ~]#ll -d /oldboyedu/
drwxr-xr-x 2 root root 45 Jul 19 09:36 /oldboyedu/
[root@oldboyedu ~]#chown oldboy.oldboy /oldboyedu/
[root@oldboyedu ~]#ll -d /oldboyedu/
drwxr-xr-x 2 oldboy oldboy 45 Jul 19 09:36 /oldboyedu/
测试r对于目录的权限:
[root@oldboyedu ~]#chmod u=r /oldboyedu/
[root@oldboyedu ~]#ll -d /oldboyedu/
dr--r-xr-x 2 oldboy oldboy 32 Jul 19 10:09 /oldboyedu/
特点:
1)进不去 cd 切换路径
2)无法查看详细信息 只能看到文件名称
3)无法创建
4)无法删除
w权限对于目录的作用:
[root@oldboyedu ~]#chmod u=w /oldboyedu/
[root@oldboyedu ~]#ll -d /oldboyedu/
d-w-r-xr-x 2 oldboy oldboy 32 Jul 19 10:09 /oldboyedu/
特点: 啥也不行
x权限对于目录的作用:
[root@oldboyedu ~]#chmod u=x /oldboyedu/
[root@oldboyedu ~]#ll -d /oldboyedu/
d--xr-xr-x 2 oldboy oldboy 32 Jul 19 10:09 /oldboyedu/
特点: 可以进入到目录 cd
总结:
1.rwx对于目录任意单个没有任何作用
2.r-x 对于目录含义 可以进去目录 可以正常查看所有文件 不能创建 不能删除 不能改名 (除了看啥都不能干)
3.rwx 拥有最高权限 增删改查
系统默认的目录权限: rwxr-xr-x 755
对于文件来讲最高权限: 644 rw-r--r--
对目录来讲最高权限: 777 授予755 只有主人可以正删改查 其他人只能看
6.系统控制权限umask
系统默认创建的目录: 755
系统默认创建的文件: 644
都是由umask默认的值控制的文件权限
查看umask:
[root@oldboyedu ~]#umask
0022
默认的目录权限: 由目录的最大权限减去umask值获得默认的属性
默认的文件权限: 由文件的最大权限减去umask值获得默认的权限
最大目录权限: 777
文件文件权限: 666
目录:
777
-022
=755 rwxr-xr-x
文件:
666
-022
644 rw-r--r--
修改umask值
[root@oldboyedu ~]#umask 044
目录:
777
-044
733 rwx-wx-wx
文件:
666
-044
=622 rw--w--w-
[root@oldboyedu ~]#mkdir oldboy
[root@oldboyedu ~]#touch 1.txt
[root@oldboyedu ~]#ll
total 0
-rw--w--w- 1 root root 0 Jul 19 10:47 1.txt
drwx-wx-wx 2 root root 6 Jul 19 10:47 oldboy
注意: 如果umask值为奇数文件权限则需要相减后再奇数位加1 目录不变
案例: umask 032
目录:
777
-032
=745 rwxr--r-x
文件:
666
-032
634
+010
=644 rw-r--r--
[root@oldboyedu ~]##目录 rwxr--r-x 文件 rw-r--r--
[root@oldboyedu ~]#umask 032
[root@oldboyedu ~]#mkdir 1
[root@oldboyedu ~]#touch 2
[root@oldboyedu ~]#ll
total 0
drwxr--r-x 2 root root 6 Jul 19 10:51 1
-rw--w--w- 1 root root 0 Jul 19 10:47 1.txt
-rw-r--r-- 1 root root 0 Jul 19 10:51 2
笔试题: 创建的目录权限为111 文件权限为000 请问umask值多少
666
7.隐藏权限位
a (append 只能追加) 如果设置了这个权限 只能追加 不能删除 不能修改
i( immutable 无敌) 无法修改 无法删除
查看隐藏权限: lsattr
[root@oldboyedu ~]#lsattr 1.txt
---------------- 1.txt
增加a隐藏权限
[root@oldboyedu ~]#chattr +a 1.txt
[root@oldboyedu ~]#ll 1.txt
-rw-r--r-- 1 root root 0 Jul 19 11:14 1.txt
[root@oldboyedu ~]#lsattr 1.txt
-----a---------- 1.txt
当操作文件没有权限会生成临时文件:
[root@oldboyedu ~]#ll
total 0
-rw-r--r-- 1 root root 0 Jul 19 11:14 1.txt
-rw-r--r-- 1 root root 0 Jul 19 11:15 1.txt~
-rw-r--r-- 1 root root 0 Jul 19 11:16 1.txz~
取消a权限
[root@oldboyedu ~]#chattr -a 1.txt
[root@oldboyedu ~]#lsattr 1.txt
---------------- 1.txt
9
增加i权限
[root@oldboyedu ~]#chattr +i 1.txt
[root@oldboyedu ~]#lsattr 1.txt
----i----------- 1.txt
注意: 在企业中操作文件没有权限 看文件和目录权限外一定要注意查看隐藏权限和第三方安全软件
8.特殊权限位置
s 4 setuid 作用:运行某一个命令的时候相当于这个命令的所有者(root)
g 2 作用:运行某一个命令的时候相当于这个命令的属组的权限(root)
t 1 粘滞位
案例:
使用root用户在/etc下创建test.txt
然后使用oldboy用户登录系统 删除test.txt
[root@oldboyedu ~]#chmod u+s /usr/bin/rm
[root@oldboyedu ~]#ll /usr/bin/rm
-rwsr-xr-x. 1 root root 62872 Aug 20 2019 /usr/bin/rm
在任意用户下执行rm命令都相当于是root执行
粘滞位:
[root@oldboyedu ~]#ll -d /oldboyedu/
drwxrwxrwx 2 root root 61 Jul 19 11:33 /oldboyedu/
[root@oldboyedu ~]#chmod 1777 /oldboyedu/
[root@oldboyedu ~]#stat /oldboyedu/
任意用户可以创建管理自己的文件,粘滞位控制不能删除其他用户的文件