首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 应用>linux系统管理>文章内容
Linux系统下用户和用户组所有权模型详解
来源:http://www.unix5.com 作者:riechelr_hl 发布时间:2007-07-12  
     $ chmod u=rx scriptfile.sh

数字模式

直到现在为止,我们使用了叫做“符号”的模式来用 chmod 指定权限的改变。然而,指定权限还有一种普遍使用的方法 — 使用 4 位八进制数。使用叫做数字权限语法的语法,每一位代表一个权限三元组。例如,在 1777 中,777 设置本章我们所讨论的“owner”、“group”和“other”标志。1 用来设置专门的权限位,我们把在本章的结束部分讲到。

这个图表说明了如何解释第二到四位(777):

 

  rwx 7
  rw- 6
  r-x 5
  r-- 4
  -wx 3
  -w- 2
  --x 1
  --- 0
  

数字权限语法

当您需要给一个文件指定所有权限时,数字权限语法特别有用,比如在下面的示例中:

 

  
  $ chmod 0755 scriptfile.sh
  
  $ ls -l scriptfile.sh
  
  -rwxr-xr-x  1 drobbins drobbins    
    0 Jan 9 17:44 scriptfile.sh
  

在该示例中,我们使用了 0755 模式,它展开为一个完整的权限设置“-rwxr-xr-x”。

Umask

当进程创建了新文件时,它指定新文件应该具有的权限。通常,所请求的模式是 0666(每个人可读和可写),它比我们希望的具有更多的权限。幸运的是,不管什么时候创建了新文件,Linux 把参考叫做“umask”的东西。系统用 umask 值来把初始指定的权限降低为更合理、更安全的权限。您可以通过在命令行中输入 umask 来查看您当前的 umask 设置:

 

  
  $ umask
  
  0022
  

Linux 系统上,umask 的缺省值一般为 0022,它允许其他人读您的新文件(如果他们可以得到它们),但是不能进行修改。为了在缺省的情况下使新文件更安全,您可以改变 umask 设置: $ umask 0077umask 把确保组和其他用户对于新创建的文件绝对没有任何权限。那么,umask 如何工作呢?与文件的“常规”权限不同,umask 指定应该关闭哪一个权限。我们来参阅一下我们的“模式到数字”映射表,从而使我们可以理解 0077 的 umask 的意思是什么: 模式 数字 rwx 7 rw- 6 r-x 5 r-- 4 -wx 3 -w- 2 --x 1 --- 0 使用该表,0077 的最后三位扩展为 ---rwxrwx。现在,请记住 umask 告诉系统禁用哪个权限。根据推断,我们可以看到把关闭所有“组”和“其他”权限,而“用户”权限把保留不动。

介绍 suid 和 sgid

当您最初登录时,把启动一个新的 shell 进程。您已经知道,但是您可能还不知道这个新的 shell进程(通常是 bash)使用您的用户标识运行。照这样,bash 程序可以访问所有属于您的文件和目录。事实上,作为用户,我们完全依靠其它程序来代表我们执行操作。因为您启动的程序继承了您的用户标识,因此它们不能访问任何不允许您访问的文件系统对象。

例如,一般用户不能直接修改 passwd 文件,因为“write”标志已经对除“root 用户”以外的每个用户关闭:

 

  
  $ ls -l /etc/passwd
  
  -rw-r--r--  1 root   wheel    
    1355 Nov 1 21:16 /etc/passwd
 

 

但是,一般用户确实需要在他们需要改变其密码的任何时候,能够修改 /etc/passwd(至少间接地)。但是,如果用户不能修改该文件,究竟如何完成这个工作呢?

Suid

幸好,Linux 权限模型有两个专门的位,叫做“suid”和“sgid”。当设置了一个可执行程序的“suid”这一位时,它把代表可执行文件的所有者运行,而不是代表启动程序的人运行。现在,回到 /etc/passwd 问题。如果看一看 passwd 可执行文件,我们可以看到它属于 root 用户:

共4页: 上一页 [1] 2 [3] [4] 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·Linux操作系统下IP隧道深入研究
·Linux操作系统的内存使用机制研
·Linux操作系统下IP隧道深入研究
·Linux操作系统中内部进程通信的
·讲解关于Linux系统下内核抢占补
·基于Linux系统管理的负载均衡技
·如何学习理解Linux的系统调用
  相关文章
·讲解关于Linux系统下内核抢占补
·Linux操作系统下IP隧道深入研究
·Linux操作系统下IP隧道深入研究
·Linux操作系统的内存使用机制研
·Linux操作系统中内部进程通信的
·基于Linux系统管理的负载均衡技
·如何学习理解Linux的系统调用

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!