免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1193 | 回复: 0
打印 上一主题 下一主题

Linux下的用户权限 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-23 21:43 |只看该作者 |倒序浏览
在终端下敲入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来看...


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/106318/showart_2129212.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP