1.权限的概念
权限=人+文件属性
2.Linux上面的用户分类(root,普通)
如何切换?
su 从普通用户切换到root、从root切换到普通用户 su zhangsan
su – 切换到root时,切到根目录下
不知道其他用户的密码,可以先切到root,再去其他用户下
对单条指令进行提权,sudo command
角色划分:
1.文件拥有者
2.文件所属组
3.文件的other
3.Linux的文件属性
读、写、执行
文件类型:Linux下不用文件后缀区分文件类型而是用文件属性中第一列的第一个字符来区分文件类型
-:普通文件,文本,可执行,归档文件
d:目录
b:块设备,磁盘
c:字符设备,键盘或者显示器
p:管道文件
s:网络socket文件
l:链接文件 link
如何看待文件的后缀呢?想用就用、将后缀看成文件名的一部分
但不代表gcc软件不需要后缀
第一列的剩余9个字符,三个为一组,
第一组,拥有者权限
第二组,所属组权限
第三组,other权限
rwx 对应读、写、执行
- 该位置对应的权限是没有
4.如何改权限?
文件拥有者和root才能改权限
chmod u/g/r/a +- rwx file.name (user) (group) (other) (all)给所有人
或者 chmod 777(8进制)file.name 直接改权限
chmod u+r
chmod g+rw
chmod o+x
chmod o-rwx
chmod u-rwx,g-rwx,o+rwx
chmod a+w
chmod 777 test.txt
sudo chown root test.txt 把文件的拥有者给root
sudo chgrp root test.txt 把文件的所属组给root
5.目录的权限
如果要进入一个目录,需要什么权限(一种):x执行
对于目录来说,没有r权限,无法查看目录的文件名+文件属性
对于目录来说,没有w权限,无法创建新文件在该目录下
6.默认权限
为什么创建的普通文件(不包括可执行),为什么默认权限是从664开始的?为什么目录的默认权限是775开始的?(当然,不同的操作系统,默认权限可能是不一样的)
默认权限—你看到的
起始权限—系统设定的
普通文件的起始权限:666开始的(没有x);目录的起始权限:777
系统为了更好的控制文件权限,系统会有默认的权限掩码的概念!umask
默认权限并不是二进制位的起始权限-掩码(仅仅是一种巧合)
权限掩码:在起始权限中,去掉在umask中出现的权限,不能影响其他任何权限
默认权限= 起始权限&(~umask)(~按位取反)
7.粘滞位
背景:在使用Linux时,未来可能会有一些共享目录,被所有普通用户共享,用来保存普通用户产生的临时数据
这个共享目录通常都是root提供的
文件被共享的时候,受权限约束,但是拦不住别人删我的文件!
为了让大家共享文件,且不让其他人随便删除别人的文件---粘滞位,只能给目录添加
chmod +t publicdir 目录中other权限中的x变为了t
为什么拦不住?这个是权限的bug吗?为什么只能给目录添加吗?
能够在特定目录下创建或者删除文件由该目录的w权限决定!
但是删除了w,别人也就不能在该目录下创建文件了,所以共享的目录必须有w
设定粘滞位,会让别人无法删除我的文件(应该的),那么谁能删除呢?
root、目录的拥有者、文件的拥有者