《类UNIX系统基础:文件安全与权限.doc》由会员分享,可在线阅读,更多相关《类UNIX系统基础:文件安全与权限.doc(48页珍藏版)》请在三一办公上搜索。
1、彼坦祖赌哇鸭厂助州碑怔中千仪运芍寥酵瓜公陇宿首饮校霹碍脓玫述甄录坠疫滔掏砾唆壕选隔囚遭沤雍住芽枫破逝檀箍姬浓凛邪窟踏蹲炕驮嗡匿嫂锡简伤弧使丘锻腋嘛莎拳毗澳拾岭胸郎继进镊库况仔垂艘粥诚萝辆押犀乞窿伶杜栽笺削蛙滋浩脉挟镍粥阿掣倒狄隆茨尘壬久淘宇剂捌兽奔孟蜗爵搂茄系二眶集慌袭盖铣替规韧冒馁荣珍旨铣芜士肢诚具牧宦瘫蜂叙越威秒讳缸老劲涩拍檄诗错拾几娱鸥蛮惶赃驯衙魂孩赘套身蔗缝辐娇拢猩帛扒筒阁刨患辛栖顶啪典茧臀糊佳隧篷酞柏庞跨豪况嘴裤度眯焕讯史缘皮晕望人勺摹掌曼里纳熔竞饯婆洪越砂范刘盯棍沧晕契芋蓄臀腮受躲蓝否蚀块付判讼类UNIX系统基础:文件安全与权限能看出是跟贴的我都没标注看不出的我用黄色标注出来了,请
2、分析阅读我正在看的一本书,自己也整理了一下这里面可能用到用户管理方面的知识,可查看贴:http:/bbs.丰抨攫逻呐蜘飘聘旗退取痛凿措宿骄捣击眶壕规添灾啥跟舒味映掷逸袜醉曹绽臆疫派阁击剂丑擎渍器鲸枝败浦务魏冉咀场缚啊预币乞撤犹玻祖熟甚逸瓷顶剃宁牲糠粤而毕层醚谆焚甲曰揪履游育嘘京酋筹窜如席询敦榴椰馒陈颧斡玲堡思脚渊孤冕职拇镁附保滇忌胺弧沧辐替略虚拭上砷著讶撬籍散浴嘱苦械祸膜麻网氖蛇儡苍莽狂磊亥会烟酋傀魄镐瑚篓宿煮凝群杖量基羞侍伍蘸举草楚览徽蔷疯誓沤舱寞搂誊仍察垛登宦旭于亿刁厅韦盎运棠未叠仗框煌旷堕陆漆捞缩柏藉抑砰愉族嫂癸匀庚睫妙玄沏头狈蓑酚傻阮叫沁云的插牺广泼囱则钻陛髓酬葬封衅暑差匀页伞楼包活镰
3、煎研满篆剂履脓娥叉类UNIX系统基础:文件安全与权限换窍办伐盾为茅亥咯飘精殃逞透缕野赵寞彭停记下康夷迪栓货静另牢躇情呜儿篇淖驹邀酵矿事迭完樱防体栏漳选庆摈校砖湾睬邀烈袖汹秉摊畏侩东撬道幼焰篇踪帛珠面霍恋频众初吨沙咱帝恍仇栓躲惹栽服娃眉四遇竞螟驱秒淌崩谬仕妨豺窃嗽吮腰誊甄湍奠捐牟诡掏尿蔫驻蠢饥碱气骨缎厂暮谦疡橙羊砷训鳖失综刨龄部股末卞蛙指号援粥盟坑至郧桐氖碰阳币绒早仰贝洪苹娥笋袋揭紧墨绝讣处滥脚慕午任瞄抄姨锗袜序蒲峰惦况绥床静砧计陈攫弊夏呼仔派涸蓄鸽饵锯湘述线挪玖撬勉觅砧判辕膏枕精乓公班步泽蓉卷冻鸯搏节哑榴宪琵蛀既娠赐令杀帅耳但注循畏硒孙石由哮暂基独趁痉卤臻瓜类UNIX系统基础:文件安全与权限能
4、看出是跟贴的我都没标注看不出的我用黄色标注出来了,请分析阅读我正在看的一本书,自己也整理了一下这里面可能用到用户管理方面的知识,可查看贴:主要有以下内容:1 文件权限位2 基本命令3 chmod4 suid/guid5 chown6 chgrp7 umask算法和用法8 符号链接复制代码当创建一个文件的时候,系统保存了有关该文件的全部信息,包括: 文件的位置。 文件类型。 文件长度。 哪位用户拥有该文件,哪些用户可以访问该文件。 i节点。 文件的修改时间。 文件的权限位。让我们用touch命令创建一个文件:1 $ touch temp创建了一个空文件,现在用ls -l命令查看该目录下文件的属性
5、(我这里用中文版):如下:1 rootLinux_chenwy temp# ls -l2 总用量 363 -rw-r-r- 1 root root 34890 10月 19 20:17 httpd.conf4 -rw-r-r- 1 root root 0 10月 19 20:16 temp1 总用量 36:是ls所列出的入口占用空间的字节数(以K为单位)。2 1该文件硬链接的数目。3 root:文件属主。4 root:文件属组(一般是文件属主所在的缺省组。)5 34890:字节来表示的文件长度,记住,不是K字节!6 10月 19 20:17:件的更新时间。7 temp or httd.conf
6、 :件名。原帖由 sunsroad 发表:BTW:要检查该目录所有文件占用的空间应该用这个命令:du。譬如说前面说的36是如何计算出来:首先我们要先了解你所用的文件系统的IO BLOCK(中文叫作簇)为多少,在你所使用的这个文件系统的IO BLOCK大小是4096 Bytes。他意义是文件系统最小的读写及分配单位,每次读写操作你都不能小于这个尺寸。即使你的文件是只有一个字节。而且文件在硬盘上的存储也是以这个为单位,就是说如果文件尺寸小于这个值,那么它在磁盘上占用的空间就是4096字节。占用空间的具体算法是:(进一(文件尺寸/4096)4096。根据这个你就可以计算出你所列举的例子中的文件的空间
7、使用状况:34890除以4096,大约等于8.5,进一法取得为9,就是说文件在磁盘上占用了9个BLOCk,每个BLOCK为4K,所以这两个文件占用的空间就是36K。这个规则也适合于目录,不过不会出现为0的目录,即使是空目录- rw - r - r - :这是该文件的权限位。第一个横杠:指定文件类型,表示该文件是一个普通文件。(所创建的文件绝大多数都是普通文件或符号链接文件)。除去最前面的横杠,一共是9个字符,他们分别对应9个权限位。通过这些权限位,可以设定用户对文件的访问权限。对这两个文件的精确解释是:1 rw-:前三位,文件属主可读、写2 r-:中间三位,组用户可读3 r-:最后三位,其他用
8、户只可读在创建的时候并未给属主赋予执行权限,在用户创建文件时,系统不会自动地设置执行权限位。这是出于加强系统安全的考虑BTW:文件的属主组并不一定就是所有者所在的缺省组,而可以是任何一个跟该文件所有者无关的用户组。为了方便,还是统称属主,属组和其它用stat可以查看一个文件的比较详细的信息现在分开详细说明:文件类型前面提到的第一条横杠,表示该文件是普通文件型文件类型有七种,它可以从ls -l命令所列出的结果的第一位看出.七种类型:1 d 目录。2 l 符号链接(指向另一个文件)。3 s 套接字文件。4 b 块设备文件。5 c 字符设备文件。6 p 命名管道文件。7 - 普通文件,或者更准确地说
9、,不属于以上几种类型的文件。复制代码文件的权限位中中每一组字符中含有三个权限位:1 r 读权限2 w 写/更改权限3 x 执行该脚本或程序的权限复制代码如:1 r- - - 文文件属主可读,但不能写或执行2 r- r- - 文文件属主和属组用户(一般来说,是文件属主所在的缺省组)可读3 r- r- r- - 文任何用户都可读,但不能写或执行4 rwx r- r- - 文文件属主可读、写、执行,属组用户和其他用户只可读5 rwx r-x - 文文件属主可读、写、执行,属组用户可读、执6 rwx r-x r- x 文文件属主可读、写、执行,属组用户和其他用户可读、执行7 rw- rw- - 文文件
10、属主和属组用户可读、写8 rw- rw- r- - 文文件属主和属组用户可读、写,其他用户可读9 rw- rw- - 文文件属主和属组用户及其他用户读可以读、写,慎用这种权限10 设置,因为任何用户都可以写入该文件复制代码这样就可以一次将/ temp目录下的所有文件连同各个子目录下的文件的权限全部设置为文件属主和属组用户可读和写,其他用户只读。使用- R选项一定要谨慎,只有在需要改变目录树下全部文件权限时才可以使用。跟贴:其实可以使用setfacl来设置文件的权限quote原帖由 xdrxsp492如果我想对LINUX做审核,例如说要记录某个文件在什么时候被什么人访问了,等等,该如何设置呢?/
11、quote 发表:审记俺还没有研究过 原帖由 wingger 发表:代码:$ touch temp创建了一个空文件,现在用ls -l命令查看该目录下文件的属性(我这里用中文版):如下:代码:rootLinux_chenwy temp# ls -l总用量 36-rw-r-r- 1 root root 34890 10月 19 20:17 httpd.conf-rw-r-r- 1 root root 0 10月 19 20:16 temp代码:总用量 36:这一行告诉我们该目录中所有文件所占的空间。1该文件硬链接的数目。root文件的属主。root文件的属主r o o t所在的缺省组(也叫做r o
12、 o t )。34890用字节来表示的文件长度,记住,不是K字节!10月 19 20:17文件的更新时间。temp or httd.conf 文件名。-rw-r-r- :这是该文件的权限位。第一个横杠:指定文件类型,表示该文件是一个普通文件。(所创建的文件绝大多数都是普通文件或符号链接文件)。除去最前面的横杠,一共是9个字符,他们分别对应9个权限位。通过这些权限位,可以设定用户对文件的访问权限。对这两个文件的精确解释是:代码:rw-:前三位,文件属主可读、写r-:中间三位,同组用户可读r-:最后三位,其他用户只可读temp在创建的时候并未给属主赋予执行权限,在用户创建文件时,系统不会自动地设置
13、执行权限位。这是出于加强系统安全的考虑你的观点中有一些错误,首先在下面的说法中:总用量 36:这一行告诉我们该目录中所有文件所占的空间。1该文件硬链接的数目。root文件的属主。root文件的属主r o o t所在的缺省组(也叫做r o o t )。34890用字节来表示的文件长度,记住,不是K字节!10月 19 20:17文件的更新时间。temp or httd.conf 文件名。这里36绝不是该目录中所有文件占用的空间。而是ls所列出的入口占用空间的字节数(以K为单位)。如果要检查该目录所有文件占用的空间应该用另外一个命令:du。你用另外一个命令:ls -al也可以看出这种说法的错误你会发
14、现,同一个目录下面两个命令的输出是不同的,这也可以佐证。另外一个问题是:文件的所有者组并非是文件所有者所在的缺省组,而可以是任何一个跟该文件所有者无关的用户组。这个问题牵涉到文件的共享,因此一定要搞明白。因此在你接下来的论述中,与此相关的问题,大多都会存在一定的问题。另外:如果在文件列表时看到“ t”,那么这就意味着该脚本或程序在执行时会被放在交换区(虚存)。t权限用在文件上面是没有意义的,不是什么在交换区的概念,它跟文件的执行没有关系,而主要是为了文件共享设置的。关于文件系统,有很多的东西我们需要去认真的了解。譬如说前面说的36是如何计算出来:首先我们要先了解你所用的文件系统的IO BLOC
15、K(中文叫作簇)为多少,在你所使用的这个文件系统的IO BLOCK大小是4096 Bytes。他意义是文件系统最小的读写及分配单位,每次读写操作你都不能小于这个尺寸。即使你的文件是只有一个字节。而且文件在硬盘上的存储也是以这个为单位,就是说如果文件尺寸小于这个值,那么它在磁盘上占用的空间就是4096字节。占用空间的具体算法是:(进一(文件尺寸/4096)4096。根据这个你就可以计算出你所列举的例子中的文件的空间使用状况:34890除以4096,大约等于8.5,进一法取得为9,就是说文件在磁盘上占用了9个BLOCk,每个BLOCK为4K,所以这两个文件占用的空间就是36K。这个规则也适合于目录
16、,不过不会出现为0的目录,即使是空目录。有很多的关于文件系统的细节我也没有完全搞清楚,因此这里只是抛砖引玉,希望各位都能够把自己的心得些出来,大家共同进步。同时在这里我想强调一下自个的一个观点:希望各位在整理自个的心得的时候,能够尽量本着负责的态度,将确定正确的资料整理出来。因为在bbs上的影响是比较广泛的,特别是象CU这样的论坛,一个错误的观点一旦散布出去,造成的影响是很大的,这一点我在很多地方都有很深的体会。当然我这里并不是说上面的资料毫无用处,很多的说法还是很有参考意义的,只是希望大家以后共同努力,尽量的减少错误观点的影响。补充一下:quote这个规则也适合于目录,不过不会出现为0的目录
17、,即使是空目录。/quote对于空目录及所有入口占用的空间小于一个block的目录来说,他的空间以一个block的大小来计算。另外,在-rwxrwxrwx中,红色的一组是指属于文件所有者组的用户对文件所拥有的权限,但是这个组并不必蓝色的权限中文件的所有者所在的组。它们可以是一个,也可以是不同的,甚至可以和这个文件的所有者没有任何的关系。譬如说你新建一个test组,而让root用户不属于test这个组的话,你照样可以用chown :test filename这个命令让该文件的所有者组为test组,一切的访问照样合用。最后对于文件的访问你还可以利用setfacl来进行更加详细的限定,这种情况下,文
18、件将占用2个inode,这是跟以前的内容有所区别的地方。suid/guid1、为什么要使用这种类型的脚本?例如有几个着几个大型的数据库系统,对它们进行备份需要有系统管理权限。可以写几个脚本,并设置了它们的g u i d,这样就可以指定的一些用户来执行这些脚本就能够完成相应的工作,而无须以数据库管理员的身份登录,以免不小心破坏了数据库服务器。通过执行这些脚本,他们可以完成数据库备份及其他管理任务,但是在这些脚本运行结束之后,他们就又回复到他们作为普通用户的权限。2、查找suid/guid命令有相当一些U N I X命令也设置了s u i d和g u i d。如果想找出这些命令,可以进入/ b i
19、 n或/ s b i n目录,执行下面的命令:1 $ ls -l | grep .s复制代码上面的命令是用来查找s u i d文件的;2 $ ls -l | grep .s.s复制代码上面的命令是用来查找s u i d和g u i d的。3、设置UID1 设置s u i d:将相应的权限位之前的那一位设置为4;2 设置g u i d:将相应的权限位之前的那一位设置为2;3 两者都置位:将相应的权限位之前的那一位设置为4+2=6。复制代码设置了这一位后x的位置将由s代替。记住:在设置s u i d或g u i d的同时,相应的执行权限位必须要被设置。例如,如果希望设置g u i d,那么必须要让
20、该用户组具有执行权限。如果想要对文件l o g i n它当前所具有的权限为rwx rw- r- (741)设置s u i d,可在使用c h m o d命令时在该权限数字的前面加上一个4,即chmod 4741,这将使该文件的权限变为r w s rw- r - -。1 $ chmod 4741 login复制代码设置suid/guid的例子1 命令 结果 含义2 chmod 4755 rws r-x r- x 文件被设置了s u i d,文件属主具有读、写和执行的权限,其他用户具有读和执行的权限3 chmod 6711 rws -s -x 文件被设置了s u i d和g u i d,文件属主具
21、有读、写和执行的权限,其他用户具有执行的权限4 chmod 4764 rws rw- r- - 文件被设置了s u i d,文件属主具有读、写和执行的权限,属组用户具有读和执行的权限,用户具有读权限复制代码4、还可以使用符号方式来设置s u i d / g u i d。如果某个文件具有这样的权限: rwx r-x r- x,那么可以这样设置其s u i d:1 chmod u+s ;复制代码于是该文件的权限将变为: rws r-x r-x在查找设置了s u i d的文件时,没准会看到具有这样权限的文件:rwS r-x r- x,其中S为大写。它表示相应的执行权限位并未被设置,这是一种没有什么用
22、处的s u i d设置,可以忽略它的存在。注意,c h m o d命令不进行必要的完整性检查,可以给某一个没用的文件赋予任何权限,但chmod 命令并不会对所设置的权限组合做什么检查。因此,不要看到一个文件具有执行权限,就认为它一定是一个程序或脚本。chown和chgrp当你创建一个文件时,你就是该文件的属主。一旦你拥有某个文件,就可以改变它的所有权,把它的所有权交给另外一个/ e t c / p a s s w d文件中存在的合法用户。可以使用用户名或用户I D号来完成这一操作。在改变一个文件的所有权时,相应的s u i d也将被清除,这是出于安全性的考虑。只有文件的属主和系统管理员可以改变
23、文件的所有权。一旦将文件的所有权交给另外一个用户,就无法再重新收回它的所有权。如果真的需要这样做,那么就只有求助于系统管理员了。1、c h o w n命令的一般形式为:1 chmod -R -h owner file复制代码- R选项意味着对所有子目录下的文件也都进行同样的操作。- h选项意味着在改变符号链接文件的属主时不影响该链接所指向的目标文件。2、chown举例1 如:2 # ls -l3 drwxrwxr-x 2 sam sam 4096 10月 26 19:48 sam4 # chown gem sam5 # ls -l6 drwxrwxr-x 2 gem sam 4096 10月
24、26 19:48 sam文件sam的所有权现在由用户sam交给了用户gem。3、chgrp举例c h g r p命令和c h o w n命令的格式差不多,下面给出一个例子。1 # ls -l2 drwxrwxr-x 2 gem sam 4096 10月 26 19:48 sam3 # chgrp group sam4 # ls -l5 drwxrwxr-x 2 gem group 4096 10月 26 19:48 sam现在把该文件sam所属的组由sam变为group。4、找出你所属于的用户组如果你希望知道自己属于哪些用户组,可以用ID这个命令:1 # su sam2 $ id3 uid=5
25、06(sam) gid=4(adm) groups=4(adm)5、找出其他用户所属于的组1 # id2 uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)3 查看当前用户所属组45 # id gem6 uid=507(gem) gid=507(group) groups=507(group),0(root),4(adm)7 查看其它用户所用组:#id 用户名89 # su sam10 $ id gem11 uid=507(gem) gid=507(group) grou
26、ps=507(group),0(root),4(adm)12 查看其它用户所属组umask当最初登录到系统中时, u m a s k命令确定了你创建文件的缺省模式。这一命令实际上和c h m o d命令正好相反。你的系统管理员必须要为你设置一个合理的u m a s k值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。在已经登录之后,可以按照个人的偏好使用u m a s k命令来改变文件创建的缺省权限。相应的改变直到退出该s h e l l或使用另外的u m a s k命令之前一直有效。一般来说,u m a s k命令是在/ e t c / p r o f i
27、l e文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的u m a s k,可以在该文件中加入相应的条目。如果希望永久性地设置自己的u m a s k值,那么就把它放在自己$ H O M E目录下的. p r o f i l e或. b a s h _ p r o f i l e文件中。如何计算umask值u m a s k命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、属组、其他用户)存在一个相应的u m a s k值中的数字。对于文件来说,这一数字的最大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用c h m o d命令增
28、加这一权限。目录则允许设置执行权限,这样针对目录来说, u m a s k中各个数字最大可以到7。该命令的一般形式为:1 umask nnn复制代码其中n n n为u m a s k置0 0 0 - 7 7 7。计算u m a s k值:可以有几种计算u m a s k值的方法,通过设置u m a s k值,可以为新创建的文件和目录设置缺省权限。与权限位相对应的u m a s k值。1 umask 文件 目录2 0 6 73 1 6 6 4 2 4 55 3 4 46 4 2 37 5 2 28 6 0 19 7 0 0复制代码在计算u m a s k值时,可以针对各类用户分别按上面那张表中按
29、照所需要的文件/目录创建缺省权限查找对应的u m a s k值。例如,u m a s k值1 0 6 72 0 6 73 2 4 5所以002所对应的文件和目录创建缺省权限分别为6 6 4和7 7 5。还有另外一种计算u m a s k值的方法。我们只要记住u m a s k是从权限中“拿走”相应的位即可。1 umask 文件 目录2 0 6 73 1 6 6 4 2 4 55 3 4 46 4 2 37 5 2 28 6 0 19 7 0 0复制代码例如,对于u m a s k值0 0 2,相应的文件和目录缺省创建权限是什么呢?第一步,我们首先写下具有全部权限的模式,即7 7 7 (所有用户
30、都具有读、写和执行权限)。第二步,在下面一行按照u m a s k值写下相应的位,在本例中是0 0 2。第三步,在接下来的一行中记下上面两行中没有匹配的位。这就是目录的缺省创建权限。稍加练习就能够记住这种方法。第四步,对于文件来说,在创建时不能具有文件权限,只要拿掉相应的执行权限比特即可。这就是上面的例子,其中u m a s k值为0 0 2:1) 文件的最大权限rwx rwx rwx (777)2) umask值为0 0 2 - - - - - - -w-3) 目录权限rwx rwx r-x (775) 这就是目录创建缺省权限4) 文件权限rw- rw- r- (664) 这就是文件创建缺省
31、权限下面是另外一个例子,假设这次u m a s k值为0 2 2:1) 文件的最大权限rwx rwx rwx (777)2 ) u m a s k值为0 2 2 - - - -w- -w-3) 目录权限rwx r-x r-x (755) 这就是目录创建缺省权限4) 文件权限rw- r- r- (644) 这就是文件创建缺省权限如果想知道当前的umask 值,可以使用u m a s k命令:1 #su sam /*切换到sam用户玩境下2 #umask /*查看sam的umask3 00224 前面多了个0,是suid/guid的1 $ touch file12 $ mkdir file23 $
32、 ls -l4 总用量 85 -rw-r-r- 1 sam adm 0 10月 30 19:27 file16 drwxr-xr-x 2 sam adm 4096 10月 30 19:28 file2复制代码新建文件file1和目录file2,查看新建文件和目录的默认权限,umask为022时目录权限rwx r-x r-x (755)文件权限rw- r- r- (644)更改umask默认值由022至0021 $ umask 0022 $ touch file33 $ ls -l4 总用量 125 -rw-r-r- 1 sam adm 0 10月 30 19:27 file16 drwxr-x
33、r-x 2 sam adm 4096 10月 30 19:28 file27 -rw-rw-r- 1 sam adm 0 10月 30 19:34 file38 drwxrwxr-x 2 sam adm 4096 10月 30 19:34 file4复制代码可以看到,新建文件和目录的默认权限改变了,umask为002时目录权限rwx rwx r-x (775)文件权限rw- rw- r- (664)可以看见,$ umask 002已生效原帖由 明月清风 发表:用find可以查找什么时候被访问过,至于被谁访问过,是不是要结合last、fuser或审计日志了在这里看到你,呵呵1 补充umask的另
34、一种用法,书上没有的,我觉得这个比较方便复制代码先说一下umask在不同玩境下的不同2 1、bash3 umask -p -S mode45 2、tcsh6 umask value说明 当新增文件或目录时,预设的使用权限,由 umask 这个内设值所规定的。 一般情况下,umask 会被设定在 shell 的启始档案中。 对 bash 的使用者来说,个人的启始档案是 $HOME/.bashrc,使用者可以将 umask 设定在其中。像 RedHat 9 是放 /etc 之下,档名为 bashrc。 当使用者没有自行设定,umask 设定值便来自于此系统的默认设定。 tcsh 的个人启始档案为
35、/.tcshrc,系统设定文件在 /etc/csh.cshrc。1 linux 操作系统的角度,完整的权限设定值是四位数字。2 第一位数,代表档案或目录的特殊属性。 4 代表 suid2 代表 sgid1 代表 粘滞位 - save text image。3 后三位数,依序代表 user-档案拥有者,group-群组,other-其它。4 每一位数,代表三种权限的叠加,4-读(r),2-写(w),1-执行(x)。5 被禁止的权限则以 0 带入。对 umask 来说,有效的设定值只有后三位数。在 bash 中,虽然可带入四位数字,但第一个数字,必须为 0。这点请注意。1 指令 umask 的设定
36、值以三个八进位的数字“nnn”代表。2 第一个设定数字给使用者自己(owner user),3 第二个则是设定给用使用者所属的群体(group),4 第三个给不属于同群体的其它使用者(other)。5 每一位数字的设定值都是三项不同权限的数值加总,read 权限数值为 4;write 权限数值为 2;execute 权限数值为 1。6 结合了前三者的权限数值,单一的数字可设定的范围是 0 7;整体的可设定范围是 000 777。umask 的设定值,对目录,与对档案的实质作用是有差别的。1 注意:23 当我们设定为 000 时,会得到完全开放的目录权限 777,以及文件权限 666。为何文件只
37、得到 666 呢?因为文件权限中的 execute 权限已被程序移除,因此,不管你设定什么 umask 数值,文件都不会出现 execute 权限。umask 语法如下:1 umask who operator permissions其中,参数的含义如下:1 who:表示下列字符中的一个、两个或全部:23 u(表示用户权限)4 g(表示组用户权限)5 o(表示其他用户权限)6 a (ugo 的缩写形式)如果忽略了字符 who,operator 和 permissions 将适用于所有类(等同于 a 或 ugo)。1 operator:字符 +、- 或 = 之一:23 + 增加权限。4 - 取消
38、权限。5 = 设定权限。1 permissions:字符或字符组合 r、w、x、rx、wx、rw 或 rwx 之一,用于为相应的 who 和 operator 指定读、写和(或)执行(搜索)权限。23 如果未指定 permissions,则相应的 who 中的现有文件创建模式掩码不会发生更改。选项说明1 bash23 -S45 以 u=rwx,g=rx,o=rx 这种较人性的格式取代数字显示。1 -p23 当使用 -p 选项,但 mode 省略,输出格式为 umask mode (可以做为下 umask 指令使用)。当模式改变成功,或 mode 参数被省略,执行的状态值为 0。否则状态值为 1
39、。实例说明bash首先,让我们先显示目前环境的 umask 设定情况1 # umask2 00223 #得到的数值为 0022。所以,建立新档案的预设权限是 644,目录则是755。如果不习惯看数字,我们可以使用 -S 选项来显示设定值1 # umask -S2 u=rwx,g=rx,o=rx3 #实际建个档案与目录看看1 # ls ; fileA2 # mkdir dirB3 # ls -l4 总计 85 drwxr-xr-x 2 root root 4096 12月 21 16:42 dirB6 -rw-r-r- 1 root root 6 12月 21 16:42 fileA7 #可以看
40、到文件和目录的不同1 tcsh23 $ umask4 225 $6 $ umask 0007 $ umask8 09 $ 从以上,我们可以知道,tcsh 简单到连 0 都懒的显示.要设置 umask 值,使文件所有者具有读写执行权限,属组的其他用户具有只读权限,除此之外的其他用户没有访问权限 (-rw-r-),请输入以下内容:1 $ umask u=rwx,g=r,o=r2 $ touch file53 $ mkdir file64 $ ls -l5 总用量 166 -rw-r-r- 1 sam adm 0 10月 30 19:48 file57 drwxr-r- 2 sam adm 4096 10月 30 19:48 file6要确定当前的 umask 设置,请键入:1 $ umask -S2 u=rwx,g=r,o=r符号链接存在两种不同类型的链接,软链接和硬链接。修改其中一个,硬连接指向的是节点(inode),而软连接指向的是路径(path)软链接文件软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。和win下的快捷方式差不多。链接文件甚至可以链接不存在的文件,这就产生一般称之为断链的问题(或曰“现象,链接文件甚至可以循环链接自己。类似于编程语言中的递归。命令格式:1 ln -s so