登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

SeaRiver Blog

实力才是你一生最好的依靠!

 
 
 

日志

 
 

文件和目录的权限  

2008-06-13 02:13:26|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Linux系统以安全性高著称,它有完善的文件和目录权限控制机制。使用ls -l命令可查看系统中文件和目录的权限。如:

debian:~# ls -l
drwxr-xr-x   3 root     root       4096 2005-05-05 02:01 SAPGUI
-rw-r--r--   1 root     root      66842 2005-03-27 17:20 Screenshot.png
-rw-r--r--   1 root     root         72 2005-03-03 20:24 setup.log
-rwxr-xr-x   1 root     root        268 2005-03-13 15:44 test
...

最左边的一串字符是文件和目录的权限控制字符串,权限字符串的第一个字母代表文件类型,不同字符代表不同的意思:

  • -,一般文件

  • d,目录

  • l,符号连接

  • b,块特殊文件

  • c,字符特殊文件

  • s,socket套接字

  • p,命名管道

后面9个字符分成三组,分别代表user(用户),group(组)和other(其它)的许可权限。每组有三个权限位,代表具体的权限:

  • r,表示文件可读或目录可读,位于三位权限组的第一位置。

  • w,表示文件可修改或目录可修改,位于三位权限组的第二位置。

  • x,表示文件可执行或目录中的文件可执行,位于三位权限组的第三位置。

  • s,表示set UID或set GID。位于user或group权限组的第三位置。如果在user权限组中设置了s位,则当文件被执行时,该文件是以文件所有者UID而不是用户UID执行程序。如果在group权限组中设置了s位,当文件被执行时,该文件是以文件所有者GID而不是用户GID执行程序。s权限位是一个敏感的权限位,容易造成系统的安全问题。请在设置时小心,并注意系统中已有的SUID或SGID文件和目录。

  • t,表示粘着位(sticky)。位于other权限组的第三位置。当设置sticky位,则保证了文件只有所属用户才具有修改和删除权限。如/tmp目录就设置了sticky位,每个用户都可以在/tmp下建立文件,但每个用户只能修改和删除自己建立的文件。

  • -,表示没有权限。该字符可出现在任何位置,表示没有许可权限。

  • 权限位后面的数字3,1,1,1表示硬链接的链接数,3表示有三个硬链接,1表示有一个硬链接。

当我们在linux中创建一个文件或目录时,系统通过umask环境变量来控制默认的权限位设置。umask的值多为022,在profile文件里设置。设置格式如下:

...
umask 022
...

使用chmod,chown和chgrp改变文件的访问权限,使用setuid和setgid来改变特殊位。

使用ls -i filename命令可以列出文件的inode信息。如:

localhost:~# ls -i simple.png
32563 simple.png
32563就是simple.png的inode节点的值。

inode值相同的链接是硬链接,inode值不同的是软链接。

硬链接示例:

localhost:~# ls -li simple.png
32563 -rw-r--r-- 1 root root 1574 2005-12-15 14:59 simple.png
localhost:~# ln simple.png simple1.png            #创建硬链接
localhost:~# ls -il simple1.png
32563 -rw-r--r-- 2 root root 1574 2005-12-15 14:59 simple1.png
localhost:~# ls -li simple1.png
32563 -rw-r--r-- 2 root root 1574 2005-12-15 14:59 simple1.png   #inode值与simple.png一样。链接值变成2
#改变互为硬链接的文件内容时,另一个文件的内容也相应被改变。但删除一个文件不会影响另一个文件。

软链接示例:

localhost:~# ls -il simple.png
32563 -rw-r--r-- 1 root root 1574 2005-12-15 14:59 simple.png
localhost:~# ln -s simple.png simple1.png    #创建软链接
localhost:~# ls -il simple.png
32563 -rw-r--r-- 1 root root 1574 2005-12-15 14:59 simple.png
localhost:~# ls -il simple1.png
32836 lrwxrwxrwx 1 root root 10 2006-04-27 13:16 simple1.png -> simple.png   #inode值与simple.png不一样了。
#软链接相当于重新创建一个链接文件,inode值不同了。源文件的链接值也不会增加。删除源文件,软链接文件也失效。
 
----------------------------------------------------------------
[yuhj@jp-test-apache ~]$ chmod 1000 ./yuhj.sh
[yuhj@jp-test-apache ~]$ ls -l  yuhj.sh
---------T  1 yuhj jiang 0 Jun 13 03:04 yuhj.sh
[yuhj@jp-test-apache ~]$ chmod 2000 ./yuhj.sh
[yuhj@jp-test-apache ~]$ ls -l  yuhj.sh
------S---  1 yuhj jiang 0 Jun 13 03:04 yuhj.sh
[yuhj@jp-test-apache ~]$ chmod 3000 ./yuhj.sh
[yuhj@jp-test-apache ~]$ ls -l  yuhj.sh
------S--T  1 yuhj jiang 0 Jun 13 03:04 yuhj.sh
[yuhj@jp-test-apache ~]$ chmod 4000 ./yuhj.sh
[yuhj@jp-test-apache ~]$ ls -l  yuhj.sh
---S------  1 yuhj jiang 0 Jun 13 03:04 yuhj.sh
[yuhj@jp-test-apache ~]$ chmod 5000 ./yuhj.sh
[yuhj@jp-test-apache ~]$ ls -l  yuhj.sh
---S-----T  1 yuhj jiang 0 Jun 13 03:04 yuhj.sh
[yuhj@jp-test-apache ~]$ chmod 6000 ./yuhj.sh
[yuhj@jp-test-apache ~]$ ls -l  yuhj.sh
---S--S---  1 yuhj jiang 0 Jun 13 03:04 yuhj.sh
[yuhj@jp-test-apache ~]$ chmod 7000 ./yuhj.sh
[yuhj@jp-test-apache ~]$ ls -l  yuhj.sh
---S--S--T  1 yuhj jiang 0 Jun 13 03:04 yuhj.sh
 
[yuhj@jp-test-apache ~]$ chmod 1755 ./yuhj.sh
[yuhj@jp-test-apache ~]$ ls -l yuhj.sh
-rwxr-xr-t  1 yuhj jiang 0 Jun 13 04:17 yuhj.sh










 
[yuhj@jp-test-apache ~]$ chmod 2755 ./yuhj.sh
[yuhj@jp-test-apache ~]$ ls -l yuhj.sh
-rwxr-sr-x  1 yuhj jiang 0 Jun 13 04:17 yuhj.sh

[yuhj@jp-test-apache ~]$ chmod 4755 ./yuhj.sh

[yuhj@jp-test-apache ~]$ ls -l yuhj.sh
-rwsr-xr-x  1 yuhj jiang 0 Jun 13 04:17 yuhj.sh

[yuhj@jp-test-apache ~]$ chmod 6755 ./yuhj.sh
[yuhj@jp-test-apache ~]$ ls -l yuhj.sh
-rwsr-sr-x  1 yuhj jiang 0 Jun 13 04:17 yuhj.sh

[yuhj@jp-test-apache ~]$ chmod 7755 ./yuhj.sh
[yuhj@jp-test-apache ~]$ ls -l yuhj.sh
-rwsr-sr-t  1 yuhj jiang 0 Jun 13 04:17 yuhj.sh
  评论这张
 
阅读(511)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018