Chinaunix首页 | 论坛 | 博客
  • 博客访问: 543180
  • 博文数量: 75
  • 博客积分: 2374
  • 博客等级: 大尉
  • 技术积分: 933
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-18 14:27
文章分类

全部博文(75)

文章存档

2014年(1)

2013年(17)

2012年(10)

2011年(15)

2010年(23)

2009年(9)

我的朋友

分类: LINUX

2009-12-23 21:43:29

在终端下敲入ls -l,查看文件,一般会看到类似

-rwxr-xr-x 1 decuhi root 50 2009-12-16 12:35 helloworld.c

的信息。在红色字体中,包括'-'的话,总共有10位,如下所示:

9 8 7 6 5 4 3 2 1 0
- r w x r - x r - x

其中,bit8~bit6表示文件所有者对该文件的权限

     bit5~bit3表示文件所有者所在组的权限

     bit2~bit0表示其他用户(组)的权限

权限分为r、w、x,对应的数值是4、2、1.传说中的777就是所有用户对文件均拥有读、写、运行三种权限.

比较特殊的是bit9,该位表示文件类型:p、d、l、s、c、b、-

p---pipe(?),命名管道文件

d---directory,文件夹

l---symbolic link,链接

s---socket,套接字文件

c---char,字符设备文件

b---block,块设备文件

'-',表普通文件。

参考金步国先生的Linux设备文件简介以及关于UNIX和Linux系统下SUID、SGID的解析

+++++++++++++++++++Partition Line+++++++++++++++++++++++

而在linux中,更令我在意的是s与S。具体的介绍可以参看上面的链接。

先引一个例子,也正是因为之前遇到这个问题,我才觉得有必要要记录一下。在/usr/bin下,查看sudo的信息(s所在的位置原本是x的):

-rwsr-xr-x 1 root root     115136 2009-02-17 11:22 sudo

如果将其权限进行修改,敲入如下#chmod u-s sudo命令后,再查看:

-rwxr-xr-x 1 root root     115136 2009-02-17 11:22 sudo


这时,假设要在普通用户下打开新立得,则会出现

$ sudo synaptic
sudo: must be setuid root


在这种情况下,只能使用超级用户才能打开。如果要复原,只需在超级用户下输入#chmod u+s sudo即可。但先不急,继续往下操作试试。连续输入下面两个指令后

# chmod u-x sudo
# chmod u+s sudo

则小s变成大S了

-rwSr-xr-x 1 root root 115136 2009-02-17 11:22 sudo

简单说,要出现小s,原来的权限必须有x,否则只会大S。

这就涉及到几个概念的东东了。SUID、SGID、EUID、EGID,分别表示Set User ID、Set Group ID、 Effective User ID跟Effective Group ID。目前觉得了解下就行。

具体的原因据说得翻翻APUE来看...

阅读(1011) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~