某文件的权限为drwxrw rw-rw- 怎样解释该文件权限属性

文件权限、特殊权限、属性、隐藏属性和ACL-红联Linux系统门户
您的位置:
&& 查看内容 - - -
文件权限、特殊权限、属性、隐藏属性和ACL
horsetornado发布于
&&字号: &&&&(网友评论&107&条)&
[i=s] 本帖最后由 horsetornado 于
21:07 编辑
linux提供了一套相当安全的文件管理方式,它包括文件的权限、属性、ACL还有SELINUX
在说文件权限之前,我们得知道它们是什么?
先在终端中输入ls -l /root,root是系统管理员的HOME目录,它下面有一个目录Desktop和文件root.如下所示:
-rw------- 1 root root
28 13:36 root
drwxr-xr-x 2 root root
26 21:42 Desktop
你会发现除了名字外前面还有一堆信息,那这些信息都是些什么意思呢?我先拿目录那行来说明
drwxr-xr-x 2 root root
26 21:42 Desktop
再说权限之前先看root和root这两个参数,他们的意思是该目录属于用户root(第一个root)和用户组root(第二个root),这两个不一定非要相同,可以通过命令修改
修改所属用户:chown haha Desktop 将Desktop的拥有者改成用户haha
修改所属组:chgrp heihei Desktop 将Desktop的群组拥有者改成用户组heihei
然后是文件的三大基本权限:读r、写w、执行x
对于文件的意义:
r:可读取文件的实际内容,如读取文本文件的文字内容等;
w:可以新增、修改该文件的内容,但不能删除该文件;
x:该文件可以被系统执行
对于文件夹的意义
r:可以读取文件夹里列表的权限,比如用ls命令将该目录下的内容列出来
w:可以新建、删除、重命名、移除文件夹下的文件和文件夹
x:进入一个文件夹的权限,如使用cd进入一个文件夹
说完这两个参数和三大权限后,那前面那十个参数就好理解了
drwxr-xr-x 这十个字母可以分成1+3+3+3四个小组。
第1组:代表该文件的类型,这里是d,代表目录
-代表普通文件,d代表目录,l代表链接文件
b代表读取数据以段为单位的设备,如硬盘
c代表读取数据以字符为单位的设备,如键盘、鼠标
第2组:代表文件拥有者对该文件的权限,这里是rwx,意思是root对该Desktop具有读r、写w、执行x的权限
第3组:代表文件所在组对该文件的权限,这里是r-x,意思是用户组root下面其他非root用户对Desktop具有读r、执行x权限,没有写w权限就用-表示
第4组:代表文件拥有者所在组外其他组及成员对该文件的权限,这里也是r-x,意思是其他组的成员对Desktop读、执行权限,没有写w权限
既然时权限,当然可以修改,修改的命令是chmod,有下面三种方法
数值模式:chmod 764 Desktop,修改完权限变成drwxrw-r--
赋值模式:chmod u=rwx,g=rw,o=r Desktop,修改完权限变成drwxrw-r--
增删模式:chmod u+x,g-x,o-x,修改完变成drwxr--r--
2、特殊权限
SUID、SGID、SBIT
先用ls -l命令看一下下面几个文件或目录的信息:
-rwsr-xr-x.
1 root root
22 2012 /usr/bin/passwd
-rwx--s--x.
1 root slocate 35612 8月
24 2010 /usr/bin/locate
drwxrwxrwt. 24 root root
20480 10月 14 17:55 /tmp
会发现在文件拥有者,文件拥有者所在组,其他组的权限x的位置上被s或者t取代了,这是什么?
先来看看他们的作用:
SUID:当用户执行具有x权限的二进制文件时拥有此文件所有者的权限
SGID:当用户执行具有x权限的二进制文件时拥有此文件所在组的权限,另外也可以对目录设置此权限
SBIT:当用户对某个目录具有w和x权限时,在该目录下建立的文件和目录只有该用户和root用户才可以删除
听着很绕,举个例子:
比如普通用户用passwd命令去修改密码,而密码是存在/etc/shadow文件中,而普通用户是无法修改这个文件的,也就无法把新密码保存进来。
但事实的结果是普通用户是可以修改密码,并且保存到/etc/shadow这个文件中的。
它的流程是这样的:
一、先看下/usr/bin/passwd这个文件,也就时命令passwd。
-rwsr-xr-x. 1 root root 25980 2月
22 2012 /usr/bin/passwd
发现这个文件的拥有者是root,并且其他组的权限为r-x,也就说普通用户对其具有r和x的权限
二、既然普通用户对其具有执行权限,因此当普通用户执行这条命令时,由于s这个权限的存在,那么在执行过程中会暂时获取root的权限
三、由于只有root才可以修改/etc/shadow文件,而在此次执行过程中已经得到了root用户的支持,因此密码会顺利得写入到这个文件中
那么,怎样才能增加这种权限呢?
可以参照第1节权限,使用chmod命令修改,命令如下:
SUID 4 SGID 2 SBIT 1
chmod 6777 这就添加了SUID和SGID权限,就是在原有权限的前面加了一个6
另外,还有可能出现rwsrwsrwt大写的情况,变成rwSrwSrwT,出现这种情况是因为用户不具备文件的x权限,而又用上面的命令强加了特殊权限
这就矛盾了,因为这三个权限的基础是用户对其有有x权限,现在连x权限都没有,那有sst这个权限又有什么用呢!
名称大小:文件名、 大小,这两个最好理解了就是文件名字和占用空间大小
所属属性:拥有者、拥有组,如1中所述
时间属性:mtime、ctime、atime
mtime:最近一次文件内容变化时间,是具体内容变化,不是属性、权限变化,ls显示的结果就是mtime
ctime:最近一次文件状态变化时间,这里就是属性、权限那些变化时的时间
atime:最近一次读取文件时间,如用cat去读取文件的时候
4、隐藏属性
隐藏属性就是给文件设定特殊的标记使其达到某种需求
废话不多说,先看下是什么东西,再说它有什么用!
查看隐藏属性的命令是:lsattr 文件名,命令很好记忆,ls应该知道是干嘛的,attribute就是属性的意思,lsattr = ls + attribute
lsattr file
----ia------- file
这就显示了文件file的隐藏属性,可以看到有13个隐藏属性,这个文件只有i、a这两个隐藏属性,其他属性没有就用-代替。
隐藏属性是需要文件系统的支持的,我的机子是ext4格式,上面有15个隐藏属性,在网上搜了下,没找到关于ext4隐藏属性的说明,因此上面这个例子是用
鸟哥的ext3格式下的例子,ext3格式下只有13个隐藏属性。
那么这个i、a是什么意思呢?
i代表不能对这个文件进行删除、改名、链接、写入资料等等。
a代表这个文件只能增加数据不能删除和修改数据。
增加隐藏属性的命令如下:
chattr +a file 修改后file就具有了a这个隐藏属性。
其他属性我也不太清楚,鸟哥的书上面只列出了几个,谁有ext4上面的隐藏属性资料希望能发给我份,谢谢了!
ACL全称Access Control List,访问控制列表,这个东西又是什么?
在传统的权限控制中,比如ls -l diary,diary是我的一个文件。
-rw-rwx--- 1 root root 2 10月
1 15:16 diray
对于某个文件和目录,它的使用者大致分为三类:文件拥有者、文件拥有者所在组、其他组这三大类,这样分就有一个很大的局限性,就是不能个性化。
举个例子:我有本日记,我现在想让我的密友看,但是别的朋友不可以看
在这里,“日记”就是文件或者目录,“我”就是“日记”的所有者,文件所在组这里没提到,你可以认为你是内心的独白,“朋友”就是其他组
在传统权限控制中,我想让我的密友看,那么就必须给其他组r权限,这样一来,不光是密友可以看见了,所有朋友都能看见
那我能不能只让密友看,而不让其他人看呢!当然可以,这就是ACL目的所在,可以针对单个用户、群组进行特别权限控制。
先来看下传统的权限:ls -l diary
-rw-rwx---. 1 root root 2 10月
1 15:16 diary
再来看下默认情况下ACL的设定:getfacl diary
# file: diary
# owner: root
//文件拥拥有者
# group: root
//文件拥所在组
//文件拥有者对其的权限,::之间为空代表文件所有者
group::rw-
//文件所在组对其的权限,::之间为空代表文件所在组
other::---
//其他组成员对其的权限,::之间为空代表其他组成员
和ls -l的显示结果一模一样,只是换了种显示方式,现在来设置只让密友查看:setfacl -m u:miyou:r-- diary
设置完就只有密友可以查看,别的人就看不了了,再来看下ACL:getfacl diary
# file: diary
# owner: root
# group: root
user:miyou:r--
//多出了这一项
group::rw-
//又冒出了这么个东东
other::---
mask的作用是这样的:它规定了开放权限的范围,比如我现在把umask设置为r--,而我还想让我的密友可以修改我的日记,于是密友变成了rw-,由于我最大只开放了r权限,即使把密友设置为rw-也只能有r权限,w无效。
再来看下一个好玩的东西:ls -l diary
-rw-rwx---+ 1 root root 2 10月
1 15:16 diary
最后的.变成了+号,这个是因为我设置了ACL缘故,详情请见我以前的一个求助贴的二楼回复:
作者: badoo&发布日期:
支持下楼主
作者: Growth兆&发布日期:
感谢horsetornado的分享,本贴加入到论坛的Linux应用贴中
作者: jiamin&发布日期:
开始就该这样~
作者: horsetornado&发布日期:
QUOTE:开始就该这样~
jiamin 发表于
23:49 纳尼?
作者: bbsytc&发布日期:
作者: chen59326&发布日期:
作者: cppbbs&发布日期:
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: cppbbs&发布日期:
(*^__^*) 嘻嘻……
作者: cppbbs&发布日期:
路过!!!
作者: agbbs_Linux&发布日期:
路过!!!
共有评论数 107/每页显示数 10
发表评论,与各位同人交流。回复请点击下方的我要评论按钮(游客可回复),要发表贴子请点击
Linux教程下载?“”(请点击),Linux教程免费下载。
求助Linux问题?论坛有39版块,覆盖所有Linux技术层面。前往“”
 |  |  |  |  |  |  |  |  |  |  |  | 
&2015 红联 Powered by SupSiteLinux文件系统中权限控制_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Linux文件系统中权限控制
上传于||文档简介
&&L​i​n​u​x​文​件​系​统​中​权​限​控​制
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
你可能喜欢2. 某文件的权限为:drwxrw-r--,用数值形式表示该权限,则该_百度知道
2. 某文件的权限为:drwxrw-r--,用数值形式表示该权限,则该
drwxrw-r--:___,则该八进制数为,该文件的所有者对这个文件有哪些权限某文件的权限为,该文件属性是___,用数值形式表示该权限
我有更好的答案
文件属性是什么意思?文件所有者owner对该文件有读写和执行的权限话说这题目出的真恶心权限764,指的是这个意思吗,这是一个目录文件
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。  文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作为一个程序执行。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的任何组合。  有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。  每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。例如:  $ ls -l sobsrc. tgz  -rw-r--r-- 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz  横线代表空许可。r代表只读,w代表写,x代表可执行。注意这里共有10个位置。第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。  例如:  - rw- r-- r--  普通文件 文件主 组用户 其他用户  是文件sobsrc.tgz 的访问权限,表示sobsrc.tgz是一个普通文件;sobsrc.tgz的属主有读写权限;与sobsrc.tgz属主同组的用户只有读权限;其他用户也只有读权限。  确定了一个文件的访问权限后,用户可以利用Linux系统提供的chmod命令来重新设定不同的访问权限。也可以利用chown命令来更改某个文件或目录的所有者。利用chgrp命令来更改某个文件或目录的用户组。  下面分别对这些命令加以介绍。  chmod 命令  chmod命令是非常重要的,用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。  该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。  1. 文字设定法  chmod [who] [+ | - | =] [mode] 文件名¼  命令中各选项的含义为:  操作对象who可是下述字母中的任一个或者它们的组合:  u 表示“用户(user)”,即文件或目录的所有者。  g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。  o 表示“其他(others)用户”。  a 表示“所有(all)用户”。它是系统默认值。  操作符号可以是:  + 添加某个权限。  - 取消某个权限。  = 赋予给定权限并取消其他所有权限(如果有的话)。  设置mode所表示的权限可用下述字母的任意组合:  r 可读。  w 可写。  x 可执行。  X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。  s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。  t 保存程序的文本到交换设备上。  u 与文件属主拥有一样的权限。  g 与和文件属主同组的用户拥有一样的权限。  o 与其他用户拥有一样的权限。  文件名:以空格分开的要改变权限的文件列表,支持通配符。  在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example  使同组和其他用户对文件example 有读权限。  2. 数字设定法  我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。  例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。  数字设定法的一般形式为:  chmod [mode] 文件名¼  例子:  (1)文字设定法:  例1:$ chmod a+x sort  即设定文件sort的属性为:  文件属主(u) 增加执行权限  与文件属主同组用户(g) 增加执行权限  其他用户(o) 增加执行权限  例2:$ chmod ug+w,o-x text  即设定文件text的属性为:  文件属主(u) 增加写权限  与文件属主同组用户(g) 增加写权限  其他用户(o) 删除执行权限  例3:$ chmod u+s a.out  假设执行chmod后a.out的权限为(可以用ls – l a.out命令来看):  –rws--x--x 1 inin users 7192 Nov 4 14:22 a.out  并且这个执行文件要用到一个文本文件shiyan1.c,其文件存取权限为“–rw-------”,即该文件只有其属主具有读写权限。  当其他用户执行a.out这个程序时,他的身份因这个程序暂时变成inin(由于chmod命令中使用了s选项),所以他就能够读取shiyan1.c这个文件(虽然这个文件被设定为其他人不具备任何权限),这就是s的功能。  因此,在整个系统中特别是root本身,最好不要过多的设置这种类型的文件(除非必要)这样可以保障系统的安全,避免因为某些程序的bug而使系统遭到入侵。  例4:$ chmod a–x mm.txt  $ chmod –x mm.txt  $ chmod ugo–x mm.txt  以上这三个命令都是将文件mm.txt的执行权限删除,它设定的对象为所有使用者。  (2)数字设定法:  例1: $ chmod 644 mm.txt  $ ls –l  即设定文件mm.txt的属性为:  -rw-r--r-- 1 inin users 1155 Nov 5 11:22 mm.txt  文件属主(u)inin 拥有读、写权限  与文件属主同组人用户(g) 拥有读权限  其他人(o) 拥有读权限  例2: $ chmod 750 wch.txt  $ ls –l  -rwxr-x--- 1 inin users 44137 Nov 12 9:22 wchtxt  即设定wchtxt这个文件的属性为:  文件主本人(u)inin 可读/可写/可执行权  与文件主同组人(g) 可读/可执行权  其他人(o) 没有任何权限  chgrp命令  功能:改变文件或目录所属的组。  语法:chgrp [选项] group filename¼  该命令改变指定指定文件所属的用户组。其中group可以是用户组ID,也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。  该命令的各选项含义为:  - R 递归式地改变指定目录及其下的所有子目录和文件的属组。  例1:$ chgrp - R book /opt/local /book  改变/opt/local /book/及其子目录下的所有文件的属组为book。  chown 命令  功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。  语法:chown [选项] 用户或组 文件  说明:chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。  该命令的各选项含义如下:  - R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。  - v 显示chown命令所做的工作。  例1:把文件shiyan.c的所有者改为wang。  $ chown wang shiyan.c  例2:把目录/his及其下的所有文件和子目录的属主改成wang,属组改成users。  $ chown - R wang.users /his
阅读(...) 评论()shell(54)
我曾看到过一些关于UNIX文件权限的错误信息,我将在本文对这些问题做一个澄清。请看如下例子中的ls命令的输出结果:
  在ls命令输出的第一行中的root说明目录“/usr/bin”属于一个叫&root&的用户所有,而&bin&则代表该目录所属的组。你需要理解UNIX中users和groups含义(在此假设你已经理解了)。我们的目标是搞清楚&drwxrwxr-x& 和 &-r-xr-xr-x&中各部分的意思;ls -l命令输出的第一个字段是由文件类型及访问权限组成的。总的来说,这些信息有时被称为“文件模式”,而有时又被称为“权限”。要深入理解上述信息,让我们先快速浏览一下它们实际上是怎么保存在硬盘里的。它们的存储方式影响着很多数年前做出的决定。
  文件模式是如何保存的呢?
  在硬盘中,关于一个文件的信息是保存在一个叫“inode”的数据结构中的。每个文件都有它自己的inode。inode里面的第一组数据项叫模(mode),其结构如下所示例二:
  我认为“mode”的真正含义仅仅是指文件访问权限,而文件内容本身则存放在数据空间,但是ls命令的作者把mode作为一个独立项处理。这也是为什么在“ls -l”输出的权限信息中第一个字母表示文件类型的原因。文件类型通常是上面例子列出的七种之一,一些其他的UNIX会有更多的类型。另一点需要注意的是,从上面显示的信息看到已经没有空间可以增加权限位了。
基本权限位
  我们有3组分别由3个bit组成的二进制数组:一个user本身的,一个是user所属的group的,另一个是其他用户other的。有时&user&也被称为所有者,&other&被称为&world&。在此我将用&user&和&other&,因为chmod命令是用字母u,g,o分别代表&user&,&group&,&other&的。
  哪一组bits适用于你呢?
  当UNIX确定你能做什么时,它并不是使用所有的9个位元。 UNIX会使用最前面的三位用于你的角色上,请先看看如下例子:
  示例五:
  ----rwxrwx 1 joe users 29 Mar 22 19:39 somefile
  尽管joe是该文件的所有者,但他不能访问该文件(由于joe是文件的所有者,他可以授予自己访问权限。后面我们再讨论)。root用户也是特殊情况,它被授予rwx权限访问所有目录及rw权限访问所有文件。对于某一个文件,如果3组的x位都设了,那么root就有执行权限。这种特殊的权限在网络文件系统上一般是被禁止的。
  对一个文件,r w 和 x 真正的含义是什么呢?
  对一个文件,“read”和“write”是非常直观的。而代表“execute”的x则表示系统kernel可以运行该文件,而要运行文件,文件本身必须是可执行的(通过编译器编译出来的文件)或是一个第一行以#!开头的shell脚本。对于一个目录来说,事情就要复杂一点了。对目录,“write”权限意味着你可以在该目录中创建新文件和删除老文件。但有时令人惊讶的是:你可以删除一个你不可以读的文件。UNIX的rm命令会去尝试并发出警告,但是你可以用-f参数禁止警告。不管是否有警告信息,如果你想从一个可写的目录中删除一个不可读的文件,你完全可以做到。而rmdir命令会毫不厌烦地去检查所有的权限信息。
对一个目录,r w 和 x 真正的含义是什么呢?
  一个目录其实也可以作为一个文件来看,而“read”权限的意思是你可以读取它,但如果没有x权限,你并不能有太多的作为。对于一个目录,你通常会同时拥有或同时不拥有读和执行的权限。在一个目录中,那个x正式被称为“搜索权限”。在一个长路径中的所有目录都需要有x权限。 因此如果你尝试“cat /etc/passwd”,那么/和/etc目录都要有x的权限。同样,如果你要cd到一个目录也需要有x权限。假设一个目录你只有读而没有可执行权限,你可以做什么操作呢?不多,你可以用ls命令查看目录中的文件名,甚至有的UNIX系统的“ls
-l”不可以。没有“搜索权限”的“读”访问是没什么大用处的。当然这还是相比只有写权限的目录,单独的写权限对目录来说是完全没用处的。我从来没看到过对上述问题有明确说明的文章,因此让我们重复一次:一个目录只有写权限而没有可执行权限就等于什么权限也没授予。假设一个目录,你只有x权限但没有读权限,那么如果你刚好知道文件名,你就可以打开这文件。虽然你可以cd进入该目录,但仅此而己;不可以创建新文件(ls命令都不可以用)。增加写权限将会允许你创建文件并且可以删除一些你知道文件名的文件。
  特殊的符号链接
  设置在符号链接的权限也有一点特殊之处,它们完全被忽略了。很多版本的UNIX都没办法去改变它。
  setuid和setgid位
  请看如下示例:
  示例六:
  上述的passwd文件只有root用户有写权限(记住:root用户很特殊,它能够对没有设置写权限的文件读写)。shadow文件,它也是保存密码的地方,也不能给一般用户读写的。但是joe希望修改他的密码。他可以通过运行/usr/bin/passwd命令来达到他的目的。请留意那些r-s权限。passwd程序(/usr/bin/passwd)设置了suid和sgid权限位,这样会把x位转换成s位。用八进制表示应该是6555。passwd程序是root所有。当joe运行它时,实际上不是以它自己用户“joe”运行的,而是以程序的所有者root身份运行的。所有passwd程序可以为joe修改密码。sgid位也是一样的道理,只不过它令passwd程序以sys组而不是joe的组运行。suid和sgid在ls命令没有输出的位置。当设置了suid位时,
ls命令将会在所有者的可执行权限出现s而不是x。那么,如果设置了suid而所有者的可执行权限是关闭的会是什么样的情况呢?这种情况ls会显示大写的S。 sgid也是类似的方式显示的,不过它只对组的可执行权限有影响。
  更详细一点,当joe在运行suid-to-root的passwd程序时,joe是真正的uid,而root则是有效uid。passwd程序可以获得它需要的两者的信息。这就是为什么passwd程序知道只允许joe修改他自己的密码。
  sticky位
  POSIX标准里说:如果目录设置了sticky位,仅仅是让目录的写权限不再有足够去轻易删除一个该目录下文件。你必须是文件或目录的所有者,不过root依然是特殊的,它可以删除任何权限设置的目录(或文件)。以前,sticky位可做为其它目的用途。在其他操作系统中现在还是那样,我将在下面的附录中详细说明。sticky位对”other”的可执行位在ls命令输出中也改变了,只不过它用了t和T而不是s和S。如下例:
  示例七:
  drwxrwxrwt 5 root root 1024 Feb 11 20:43 /tmp
  目录中,任何人可以创建新文件。但由于设置了sticky位,一般用户(非root用户或目录所有者)不可以删除其他用户的文件。
用umask来限制文件权限
  当一个文件被创建时,创建文件的程序可以指定初始的权限设置,你可以用umask覆盖它,umask是一组权限禁止位。UNIX系统有一个umask命令允许你查看以及修改umask的值。例如,执行“umask 022”会禁止一个新创建文件的group和other的写权限。而“umask 027”则会禁止group的写和other的读、写及可执行权限。你也可以执行“umask 0”来使得一个程序开放所有的权限给它创建的文件。这也是所有umask能做的了,你不能用umask去打开一个已禁止的权限。umask的设置只影响文件、目录、管道(又称:fifos)和特殊文件。它对符号链接可能有也可能没有影响。同时它也影响某些类型的IPC(Inter
Process Communication),但这些内容已经超出本文的讨论范围了。另外,不管你信不信,sockets是不受umask影响的。这个免除是POSIX要求的。
  用chmod来修改文件的访问权限
  只有文件的所有者或root才可以修改该文件的权限。这个操作完全不受umask设置的影响。如果你修改一个符号链接的权限,这会跟着那个链接走并把目标文件的权限作相应的修改。对于一个文件,有可能只有root才有权力设置sticky位。例如,“chmod 700 somefile”会允许所有者有读、写和执行权限,而不允许任何其它用户有任何访问权限。
  使用chmod 和 umask的符号模式
  POSIX引入了一套新的chmod命令句法。他们的想法是在chmod命令中用新的句法去替代用八进制常数。当然原来的八进制可以继续使用,而不再继续发展了。但是符号句法让你可以在不知道其他位设置的情况下修改某些位,而不影响它们的值。比如说:我想不让other访问一个文件但又不想改动user和group的权限。那我要做如下操作:
  ls -l file
  搞明白文件当前的权限设置。
  chmod 750 file ss执行此命令来修改权限,前提是原有的user和group权限是rwxr-x
  在运行chmod命令前,我必须确定前面两位数字是7和5。使用新的句法,我只须简单的做如下操作去关闭最后三位权限位:
  chmod o= file
  正如另一例子,“chmod u+x file”会允许user执行该文件。也就是说,如下命令是一样的:
  chmod 750 file
  chmod u=rwx,g=rx,o= file
  而我更喜欢第一种句法。
  符号模式可以用逗号来分开一系列的参数,每组参数包含三部分:
  示例八:
  另外还有很多其他方法可以完成上述的设置。
对于大部分chmod的功能,umask对它们都不会有影响,因此chmod设置的任何位都不会被umask改变。然而,有一种情况chmod会先检查当前umask的设置然后确定设置哪些位,那就是当chmod命令中“who”域是空的时候。如下例所示:
  chmod =w somefile
  “a=w”和“=w”的差别很小,下面例子可以帮我们更好地理解其中的含义。很多程序以666的默认权限创建新文件的,假设你想设置一个文件的权限为666,但被当前umask改动过;我们可以先关闭所有的权限,然后打开当前umask允许的读和写权限:
  chmod a=,=rw somefile
  说到umask,你也可以在umask命令中使用符号参数。然而POSIX聪明的在这件事上决定使用逻辑上刚好相反的方式。所以如果使用八进制数作为umask的参数,指的是禁止某些位;而用符号参数的话则允许你指定的位。如下两个命令是一样的:
  umask 022
  umask u=rwx,go=rx
  到此你已经有足够的信息搞明白那12位权限位了。这些信息都是相当通用的,符合POSIX标准的操作系统都必须支持这些内容。这包括过去十年几乎所有版本的UNIX发行版。后面有机会我们还将讨论那些可能不太通用的情况。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:272726次
积分:3391
积分:3391
排名:第5532名
原创:57篇
转载:150篇
评论:20条
(2)(4)(8)(1)(1)(1)(5)(2)(2)(4)(1)(3)(11)(43)(13)(14)(7)(4)(17)(19)(25)(5)(15)

我要回帖

更多关于 drwxrwxr x权限是多少 的文章

 

随机推荐