前言
本文介绍了LInux下面权限的概念与对文件权限进行修改的方法以及umask、粘滞位的概念
一、权限
1.权限是用来限制人的(能还是不能) 针对于人
其限定的本质是人的角色和身份。(拥有者、所属组、other)
不属于拥有者和所属组的用户叫做other。
2.对用的操作对象要有满足人对应需求的属性 针对于操作对象
二、文件访问权限的相关设置命令
1.权限修改命令:
(1) chmod u/g/o+/-rwx 文件名
(2) chmod 三位八进制数字 文件名
三位八进制数字分别表示拥有者、所属组和other的权限,每一个八进制数字表示是否有rwx权限,有为1,无为0,再转换为八进制数字。
2.拥有者修改命令:
sudo chown 新用户 文件名
chown命令需要root权限,所以需要使用sudo指令提权
chown还可以同时修改拥有者和所属组
sudo chown 拥有者:所属组 文件名
3.所属组修改命令
sudo chgrp 用户组名 文件名
三、文件权限匹配问题
四、文件类型
在windows下面,文件类型是通过后缀来区别的,文件类型决定了打开方式。
在linux下面,文件类型不通过后缀来区分(不代表linux下面没有文件后缀),而是通过
文件第一个字符代表文件类型
文件字符代表的文件类型:
--:普通文件 文本文件、源代码文件、图片、视频、库、可执行文件等
d:目录文件
b:block,块设备文件 磁盘(允许随机访问)
c:char,字符设备文件 键盘、显示器(不允许随机访问,只能按照顺序访问)
l:链接文件
p:管道文件
s:socket文件
查看文件类型命令
file 文件名
五、关于权限常见的三点补充
1).目录权限中,x权限的作用是决定能否进入文件,r权限的作用是决定发我们是否能查看目录下文件的属性信息,w权限的作用是决定我们是否能目录内文件(包括新建文件、删除文件、修改文件、重命名文件)。
2).在我的linux系统下面,创建的普通文件权限默认为644,创建的目录默认权限是755,这是因为有umask(权限掩码)的存在,可以定制化文件的默认权限
权限掩码:从起始权限中去掉在umask中出现的权限,如果起始权限中本来就没有需要去掉的权限,则保留不动。
修改umask命令:umask 三位八进制数据l
最终权限 = 起始权限 &(777-umask),在linux下面一般普通文件的起始权限为666,目录文件的起始文件为777
3).一个文件能否被删除并不取决于文件本身,而是取决于文件所在的文件是否有写权限。
如果需要在一个特定的目录下实现数据共享,多个用户可以在/tmp下面实现资源共享,为了解决/tmp文件夹中用用户互删文件的问题,/tmp的权限为rwxrwxrwt。
其中t为粘滞位,拥有x的意义,同时对共享目录文件做了进一步的限制,只有root、文件夹的所有者、文件所有者才有权限删除。
六、总结
1.目录的可执行权限是表示你可否在目录下执行命令。
2.如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这 个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
3.而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读 权限
4.所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档
5.权限只对普通用户有作用,root无视权限。