目录
我们可以看到拥有者和other都无法进行读写操作,但是root依旧不受影响
问题2:目录权限
问题3:粘滞位(给目录文件设置)
认识Linux下用户的分类
root:超级用户 类似Windows中管理员的身份
普通用户
adduser 添加用户(第一节课最后)
root与普通用户的差别
root基本不受权限的约束
普通用户是受权限约束的
这两个用户之间如何切换
Linux中所有的用户,都有有密码,无论是root还是其他,即便是多个普通用户,也都要设置密码
当前是普通用户
su
后面什么都不跟,那么就是root密码(2023.5.13 . 11minute)pwd 路径还是先前普通用户的路径下
只是身份变换
su -
也是切换成root用户 pwd1路径发生变化,变到了root下
相当于重新登录
普通用户想切换成其它普通用户,需要输入其它普通用户的密码,输入自己的和root密码都没用
ctrl+d
exit
上面两个都可以退回到普通用户
当前是root
su+普通用户名
直接切换,不需要输入密码,超级用户,不受权限约束
退出方式相同
ctrl+d
exit
sudo(命令集权,以root身份执行指令)
如果我们想暂时的对一条命令进行提权 sudo command,输入的是当前普通用户的密码
但是目前我们用adduser新建的用户,没用办法执行sudo,除非未来将普通用户,添加到系统的信任白名单里面
你不在 /etc/sudoers
什么叫做权限
一件事情是否允许被你做
1.权限认证的是身份(权限和“人”有关)
比如张三是校长,坐在校长办公室
因为他是校长,所以可以坐在校长办公室
而不是因为他是张三,
人+身份角色
角色,权限身份()
拥有者:
所属组:同一组内的人可以共享某些资源
其他人:
与root和普通用户的关系
一个是具体的人,任何一个人都可以扮演某个角色
一个是具体的角色
2.权限也和事物的“属性”有关
文件类型
以d开头 块设备文件——磁盘文件
c开头 字符设备文件
[Yechenchen@VM-4-9-centos ~]$ ls /dev/tty*
/dev/tty /dev/tty19 /dev/tty3 /dev/tty40 /dev/tty51 /dev/tty62
/dev/tty0 /dev/tty2 /dev/tty30 /dev/tty41 /dev/tty52 /dev/tty63
/dev/tty1 /dev/tty20 /dev/tty31 /dev/tty42 /dev/tty53 /dev/tty7
/dev/tty10 /dev/tty21 /dev/tty32 /dev/tty43 /dev/tty54 /dev/tty8
/dev/tty11 /dev/tty22 /dev/tty33 /dev/tty44 /dev/tty55 /dev/tty9
/dev/tty12 /dev/tty23 /dev/tty34 /dev/tty45 /dev/tty56 /dev/ttyS0
/dev/tty13 /dev/tty24 /dev/tty35 /dev/tty46 /dev/tty57 /dev/ttyS1
/dev/tty14 /dev/tty25 /dev/tty36 /dev/tty47 /dev/tty58 /dev/ttyS2
/dev/tty15 /dev/tty26 /dev/tty37 /dev/tty48 /dev/tty59 /dev/ttyS3
/dev/tty16 /dev/tty27 /dev/tty38 /dev/tty49 /dev/tty6
/dev/tty17 /dev/tty28 /dev/tty39 /dev/tty5 /dev/tty60
/dev/tty18 /dev/tty29 /dev/tty4 /dev/tty50 /dev/tty61
[Yechenchen@VM-4-9-centos ~]$ ls /dev/tty* -l
crw-rw-rw- 1 root tty 5, 0 May 20 16:13 /dev/tty
crw--w---- 1 root tty 4, 0 Apr 14 21:51 /dev/tty0
crw--w---- 1 root tty 4, 1 Apr 14 21:51 /dev/tty1
crw--w---- 1 root tty 4, 10 Apr 14 21:51 /dev/tty10
crw--w---- 1 root tty 4, 11 Apr 14 21:51 /dev/tty11
crw--w---- 1 root tty 4, 12 Apr 14 21:51 /dev/tty12
crw--w---- 1 root tty 4, 13 Apr 14 21:51 /dev/tty13
crw--w---- 1 root tty 4, 14 Apr 14 21:51 /dev/tty14
crw--w---- 1 root tty 4, 15 Apr 14 21:51 /dev/tty15
crw--w---- 1 root tty 4, 16 Apr 14 21:51 /dev/tty16
crw--w---- 1 root tty 4, 17 Apr 14 21:51 /dev/tty17
crw--w---- 1 root tty 4, 18 Apr 14 21:51 /dev/tty18
crw--w---- 1 root tty 4, 19 Apr 14 21:51 /dev/tty19
crw--w---- 1 root tty 4, 2 Apr 14 21:51 /dev/tty2
crw--w---- 1 root tty 4, 20 Apr 14 21:51 /dev/tty20
crw--w---- 1 root tty 4, 21 Apr 14 21:51 /dev/tty21
crw--w---- 1 root tty 4, 22 Apr 14 21:51 /dev/tty22
crw--w---- 1 root tty 4, 23 Apr 14 21:51 /dev/tty23
crw--w---- 1 root tty 4, 24 Apr 14 21:51 /dev/tty24
crw--w---- 1 root tty 4, 25 Apr 14 21:51 /dev/tty25
crw--w---- 1 root tty 4, 26 Apr 14 21:51 /dev/tty26
crw--w---- 1 root tty 4, 27 Apr 14 21:51 /dev/tty27
crw--w---- 1 root tty 4, 28 Apr 14 21:51 /dev/tty28
crw--w---- 1 root tty 4, 29 Apr 14 21:51 /dev/tty29
crw--w---- 1 root tty 4, 3 Apr 14 21:51 /dev/tty3
crw--w---- 1 root tty 4, 30 Apr 14 21:51 /dev/tty30
crw--w---- 1 root tty 4, 31 Apr 14 21:51 /dev/tty31
crw--w---- 1 root tty 4, 32 Apr 14 21:51 /dev/tty32
crw--w---- 1 root tty 4, 33 Apr 14 21:51 /dev/tty33
crw--w---- 1 root tty 4, 34 Apr 14 21:51 /dev/tty34
crw--w---- 1 root tty 4, 35 Apr 14 21:51 /dev/tty35
crw--w---- 1 root tty 4, 36 Apr 14 21:51 /dev/tty36
crw--w---- 1 root tty 4, 37 Apr 14 21:51 /dev/tty37
crw--w---- 1 root tty 4, 38 Apr 14 21:51 /dev/tty38
crw--w---- 1 root tty 4, 39 Apr 14 21:51 /dev/tty39
crw--w---- 1 root tty 4, 4 Apr 14 21:51 /dev/tty4
crw--w---- 1 root tty 4, 40 Apr 14 21:51 /dev/tty40
crw--w---- 1 root tty 4, 41 Apr 14 21:51 /dev/tty41
crw--w---- 1 root tty 4, 42 Apr 14 21:51 /dev/tty42
crw--w---- 1 root tty 4, 43 Apr 14 21:51 /dev/tty43
crw--w---- 1 root tty 4, 44 Apr 14 21:51 /dev/tty44
crw--w---- 1 root tty 4, 45 Apr 14 21:51 /dev/tty45
crw--w---- 1 root tty 4, 46 Apr 14 21:51 /dev/tty46
crw--w---- 1 root tty 4, 47 Apr 14 21:51 /dev/tty47
crw--w---- 1 root tty 4, 48 Apr 14 21:51 /dev/tty48
crw--w---- 1 root tty 4, 49 Apr 14 21:51 /dev/tty49
crw--w---- 1 root tty 4, 5 Apr 14 21:51 /dev/tty5
crw--w---- 1 root tty 4, 50 Apr 14 21:51 /dev/tty50
crw--w---- 1 root tty 4, 51 Apr 14 21:51 /dev/tty51
crw--w---- 1 root tty 4, 52 Apr 14 21:51 /dev/tty52
crw--w---- 1 root tty 4, 53 Apr 14 21:51 /dev/tty53
crw--w---- 1 root tty 4, 54 Apr 14 21:51 /dev/tty54
crw--w---- 1 root tty 4, 55 Apr 14 21:51 /dev/tty55
crw--w---- 1 root tty 4, 56 Apr 14 21:51 /dev/tty56
crw--w---- 1 root tty 4, 57 Apr 14 21:51 /dev/tty57
crw--w---- 1 root tty 4, 58 Apr 14 21:51 /dev/tty58
crw--w---- 1 root tty 4, 59 Apr 14 21:51 /dev/tty59
crw--w---- 1 root tty 4, 6 Apr 14 21:51 /dev/tty6
crw--w---- 1 root tty 4, 60 Apr 14 21:51 /dev/tty60
crw--w---- 1 root tty 4, 61 Apr 14 21:51 /dev/tty61
crw--w---- 1 root tty 4, 62 Apr 14 21:51 /dev/tty62
crw--w---- 1 root tty 4, 63 Apr 14 21:51 /dev/tty63
crw--w---- 1 root tty 4, 7 Apr 14 21:51 /dev/tty7
crw--w---- 1 root tty 4, 8 Apr 14 21:51 /dev/tty8
crw--w---- 1 root tty 4, 9 Apr 14 21:51 /dev/tty9
crw--w---- 1 root tty 4, 64 Apr 14 21:51 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 Apr 14 21:51 /dev/ttyS1
crw-rw---- 1 root dialout 4, 66 Apr 14 21:51 /dev/ttyS2
crw-rw---- 1 root dialout 4, 67 Apr 14 21:51 /dev/ttyS3
p开头 管道文件,通常用于通信设备
Linux下后缀没有意义
那么这个为什么修改后就无法编译
gcc是一款编译器软件,Linux不需要,不代表其它Linux系统上运行的其它软件不需要后缀
Linux中如何看待后缀:看用户需求
没有权限会有什么现象
文件类型,权限,第一个whb是拥有者,第二个whb是所属组名(group),16424文件大小,后面的日期是最近修改时间,最后的是文件名
至于other太多了,所以不需要写到文件属性里
权限字符3位为一组
文件拥有者
other
普通用户
再来看普通用户,并且这个普通用户即不是拥有者,也不是所属组成员,因此它应该可读但不可写,
permission 权限 denied拒绝,跟我们看到的一样可读但不可写
root
再来看root,它不是拥有者,也不是所属组,那么它属于other,因此它应该可读但不可写,
root账号跟我们看到的不太一样,既可读也可写
因此,可以验证root1是不受权限约束的
我们将所有权限都修改为-
拥有者
other
root
我们可以看到拥有者和other都无法进行读写操作,但是root依旧不受影响
权限的修改问题
能够更改权限的只有两种人
1.文件拥有者
2.root
chmod 修改权限(+加权限,-减权限)
u 拥有者user
g 所属组group
o other
a 代表所有人all
在两者之间加个,逗号处理多个对象
使用8进制方案进行修改权限(111)
拥有者和所属组修改
修改other不需要单独提供指令
给东西给别人也需要证得别人的同意:普通用户想把文件拥有者转让给别人,需要别人允许
但是root可以强行更改
这里已经将我们从拥有者变成了所属组
chown修改拥有者
charp 修改所属组
在这里我从所属组变成了other
同时修改拥有者和所属组
补充一点
在进行角色认证时,只能选择一个角色进行认证
在这里whb既是拥有者,也是所属组,但是在这里只看拥有者权限,不会看所属组权限
我们将文件拥有者的身份去掉后,才会看所属组的权限
优先确认你是否是拥有者
关于权限面试的3个问题
问题1:为什么我们创建文件的默认权限是我们所看到的样子?
umask 权限掩码
限定你创建文件时的起始权限
umask一般默认为0002,第一位0不需要看
那么它是不是二进制减法?
最终权限=起始权限&(~umask)
~按位取反
rm * -rf 删除全部文件
[Yechenchen@VM-4-9-centos class_108_1]$ ll
total 36
-rw-rw-r-- 1 Yechenchen Yechenchen 18 May 16 10:40 big.txt
drwxrwxr-x 3 Yechenchen Yechenchen 4096 May 18 16:16 d1
drwxrwxr-x 3 Yechenchen Yechenchen 4096 May 2 17:16 d1_backup
-rw-rw-r-- 1 Yechenchen Yechenchen 177 May 18 16:09 d1.zip
drwxrwxr-x 3 Yechenchen Yechenchen 4096 May 18 15:16 d2
-rw-rw-r-- 1 Yechenchen Yechenchen 0 May 18 16:18 long.txt
-rw-rw-r-- 1 Yechenchen Yechenchen 12 May 2 17:16 mytest_backup.txt
-rw-rw-r-- 1 Yechenchen Yechenchen 12 May 2 17:16 mytest.txt
drwxrwxr-x 3 Yechenchen Yechenchen 4096 May 18 17:02 reason
-rw-rw-r-- 1 Yechenchen Yechenchen 12 May 2 17:16 test_backup.txt
[Yechenchen@VM-4-9-centos class_108_1]$ rm * -rf
[Yechenchen@VM-4-9-centos class_108_1]$ ll
total 0
目录权限
目录文件3个权限选项的意义
-wx 没有读权限时,可以进入到目录文件中,可以修改目录内容,但看不到目录文件中的内容
rw- 没有可执行权限,不允许你进入目录,但是你还是能够看到目录里面的内容
普通文件之所以是666,是因为普通文件不需要可执行
目录文件之所以是777,是因为如果没有x甚至无法进入这个目录文件,没有意义
粘滞位(给目录文件设置)
只有root能在/(根目录)下建立文件
创建了一个shared目录文件,修改初始权限为777
在同一个共享目录文件下
文件拥有者限定了所属组和other的权限,如下所示other不能读,也不能写
但是它却可以删除我们创建的文件
为什么会是这样呢?
因为一个文件是否能被删除不是这个文件本身能够决定的,是由这个文件所处的目录文件的权限设置决定的
我们能通过什么方法避免别人把我们的文件删掉?
1.去掉该共享目录文件的w权限,其实可以让别人无法删除我们的文件,但是我们自己也无法修改,创建文件
2.设置粘滞位
限制彼此之间的互删
chmod o+t shared
再次见证root的强大
你不让别人读,也不让别人写,但是,抱歉,我是root,我不仅能读能写,还能把你在拥有粘滞位的目录文件里写的文件给删了
自带的共享目录文件
其实在Linux系统中,你不需要建立共享目录,它自带了一个共享目录、
tmp
[Yechenchen@VM-4-9-centos /]$ ls -l /
total 72
lrwxrwxrwx. 1 root root 7 Mar 7 2019 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Apr 14 22:24 boot
drwxr-xr-x 2 root root 4096 Nov 5 2019 data
drwxr-xr-x 19 root root 3040 Apr 14 21:52 dev
drwxr-xr-x. 100 root root 12288 Apr 14 22:24 etc
drwxr-xr-x. 5 root root 4096 Apr 14 22:05 home
lrwxrwxrwx. 1 root root 7 Mar 7 2019 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Mar 7 2019 lib64 -> usr/lib64
drwx------. 2 root root 16384 Mar 7 2019 lost+found
drwxr-xr-x. 2 root root 4096 Apr 11 2018 media
drwxr-xr-x. 2 root root 4096 Apr 11 2018 mnt
drwxr-xr-x. 4 root root 4096 Apr 14 21:52 opt
dr-xr-xr-x 119 root root 0 Apr 14 21:51 proc
dr-xr-x---. 7 root root 4096 Apr 20 19:38 root
drwxr-xr-x 31 root root 1080 May 11 02:42 run
lrwxrwxrwx. 1 root root 8 Mar 7 2019 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 Apr 11 2018 srv
dr-xr-xr-x 13 root root 0 May 13 17:50 sys
drwxrwxrwt. 8 root root 4096 May 21 16:52 tmp
drwxr-xr-x. 14 root root 4096 Jan 8 2021 usr
drwxr-xr-x. 20 root root 4096 Jan 8 2021 var