目录
1.什么是权限?
就是通过一定条件,拦住一部分人,给另一部分人权限,来访问某种资源。
有无,或者能与不能的问题。
2.权限的本质
权限与人有关
权限和事物的属性有关
权限 = 人 + 事物的属性
3.Linux中的用户
root:超级管理员 不受权限约束
其他:普通用户
普通用户与root用户相互转换
普通用户变root:su
root变普通用户:su 用户名
普通用户不变root,以root身份执行一个命令
指令提权
LInux中的角色
Linux的角色有:拥有者,所属组,other
第一个lc是文件的拥有者
第二个lc是文件的所属组
4.Linux文件的权限
文件属性的权限一般为三种:
r,读
w,写
x,可执行权限
-rw-rw-r--:指的是文件的权限
第一个‘-’是表示是文件
剩下的33一组,分别对应拥有者,所属组,other
拥有者权限
第一个字符:是否有读权限。->如果是,就是r,否则,就是-
第二个字符:是否有写权限。->如果是,就是w,否则,就是-
第三个字符:是否有可执行权限。->如果是,就是x,否则,就是-
5.快速掌握修改权限的做法
一个文件的权限,谁能修改?
a.文件拥有者
b.root
修改权限
语法:chomd u+[-]rwx,g+[-]rwx,x+[-]rwx
案例:
拥有者去掉读权限
拥有者获得读写权限
所属组去掉写权限
所属组获得写权限
other去掉读权限
拥有者去掉写权限,所属组去掉写权限
拥有者获得写权限,所属组获得写权限,other获得读权限
三个角色都拥有读权限
6.对比权限有无表现
对于普通用户,自身也要受到权限的限制
root用户则不受权限约束
权限存在的意义:
保证普通用户的文件一般安全性
7.修改权限的第二条做法
更改拥有者
chown 用户名 filename
更改所属组
chgrp 用户名 filename
更改文件拥有者
root更改所属组
普通用户更改所属组
第二种更改权限的方法
chmod 八进制 filename
拥有者:110
所属组:110
other:100
三个起来是8都是八进制数:664
8.文件类型
Linux不通过后缀名区分文件类型(不是说Linux不用后缀)
通过什么区分?
ls-l第一个属性列
Linux文件类型
-:普通文件,文本文件,可执行程序,库等都叫做普通文件
d:目录文件
b:块设备文件
e:字符设备文件 ->printf("%d",123) --- 显示器本质就是字符设备
p:管道文件
I:链接文件
Linux系统不以文件后缀作为区分文件的类型,[不是说Linux不用后缀],但是Linux上面的工具可能区分!
并不代表gcc不需要 !!
Linux系统 != gccLinux不区分文件类型
我们在Linux对于文件后缀的态度:
可以使用!
如何理解x ??
可执行权限vs可执行能执行 =具有可执行权限+你就是一个可执行文件
如果我们要进入一个目录,需要什么权限 ???
进入一个目录,需要x权限
目录的r权限:用户能否查看指定目录内的文件信息
目录的w权限:决定用户是否能在指定的目录内新建,修改,
Linux创建文件的时候,为什么好像有默认权限?为什么是我们看到的样子?
创建的普通文件,起始权限是:0666,去掉x的
创建的目录文件,起始权限是:0777,包含x的
umask:Linux中的权限掩码
默认umask的掩码
创建文件的时候,要从起始权限中,过滤掉(不是简单的减法)在umask中出现的权限
最终权限=起始权限&(~umask)
普通文件
666 -> 110 110 110
002 -> 000 000 010 ~umask
~umask:111 111 101110 110 110
111 111 101 &
110 110 100 -> 664目录文件:
777 ->111 111 111
002 -> 000 000 010
~umask:111 111 101111 111 111
111 111 101111 111 101
7 7 5
为什么我们普通人竟然能删掉别人的文件(包括root)?合理吗?
删除一个文件和目标文件有关系么 ?? 没关系 !!!!
和谁有关系 ??
和我所在的目录有关系 !!!
多个Linux用户,如果想实现多个用户文件级别的信息共享,该怎么办 ???
不能再任何一个用户的家目录里面
我们只能在系统的非用户目录下创建!
当一个目录被设置为“粘滞位”(用chmod+t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除注意:
粘滞位只能对目录设置
设置粘滞位的目录只能自己和别人看,不能删除
删除只能root和目录的所有者,文件的所有者删除