linux权限最高命令 linux 最高权限( 四 )


Linux的文件权限有以下设定:
Linux下文件的权限类型一般包括读 , 写 , 执行 。对应字母为 r、w、x 。
Linux下权限的属组有 拥有者 、群组 、其它组 三种 。每个文件都可以针对这三个属组(粒度) , 设置不同的rwx(读写执行)权限 。
通常情况下,一个文件只能归属于一个用户和组,如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组 。
如果我们要表示一个文件的所有权限详情,有两种方式:
第一种是十位二进制表示法,(三个属组每个使用二进制位,再加一个最高位共十位),可简化为三位八进制形式
另外一种十二位二进制表示法(十二个二进制位) , 可简化为四位八进制形式
十位权限表示
常见的权限表示形式有:
-rw------- (600)只有拥有者有读写权限 。-rw-r--r-- (644)只有拥有者有读写权限;而属组用户和其他用户只有读权限 。-rwx------ (700)只有拥有者有读、写、执行权限 。-rwxr-xr-x (755)拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限 。-rwx--x--x (711)拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限 。-rw-rw-rw- (666)所有用户都有文件读、写权限 。-rwxrwxrwx (777)所有用户都有读、写、执行权限 。
后九位解析:我们知道Linux权限总共有三个属组,这里我们给每个属组使用三个位置来定义三种操作(读、写、执行)权限,合起来则是权限的后九位 。上面我们用字符表示权限,其中 -代表无权限,r代表读权限,w代表写权限,x代表执行权限 。
实际上,后九位每个位置的意义(代表某个属组的某个权限)都是固定的,如果我们将各个位置权限的有无用二进制数 1和 0来代替,则只读、只写、只执行权限 , 可以用三位二进制数表示为
r--=100-w-=010--x=001---=000
转换成八进制数,则为 r=4, w=2, x=1, -=0(这也就是用数字设置权限时为何是4代表读,2代表写,1代表执行)
实际上,我们可以将所有的权限用二进制形式表现出来,并进一步转变成八进制数字:
rwx=111=7rw-=110=6r-x=101=5r--=100=4-wx=011=3-w-=010=2--x=001=1---=000=0
由上可以得出 , 每个属组的所有的权限都可以用一位八进制数表示,每个数字都代表了不同的权限(权值) 。如 最高的权限为是7,代表可读,可写 , 可执行 。
故 如果我们将每个属组的权限都用八进制数表示,则文件的权限可以表示为三位八进制数
-rw------- =600-rw-rw-rw- =666-rwxrwxrwx =777
关于第一位最高位的解释:上面我们说到了权限表示中后九位的含义,剩下的第一位代表的是文件的类型,类型可以是下面几个中的一个:
d代表的是目录(directroy)-代表的是文件(regular file)s代表的是套字文件(socket)p代表的管道文件(pipe)或命名管道文件(named pipe)l代表的是符号链接文件(symbolic link)b代表的是该文件是面向块的设备文件(block-oriented device file)c代表的是该文件是面向字符的设备文件(charcter-oriented device file)
十二位权限(Linux附加权限)
附加权限相关概念
linux除了设置正常的读写操作权限外,还有关于一类设置也是涉及到权限,叫做Linxu附加权限 。包括 SET位权限(suid,sgid)和粘滞位权限(sticky) 。
SET位权限:
suid/sgid是为了使“没有取得特权用户要完成一项必须要有特权才可以执行的任务”而产生的 。
一般用于给可执行的程序或脚本文件进行设置,其中SUID表示对属主用户增加SET位权限,SGID表示对属组内用户增加SET位权限 。执行文件被设置了SUID、SGID权限后,任何用户执行该文件时,将获得该文件属主、属组账号对应的身份 。在许多环境中 , suid

推荐阅读