Linux基础命令详解之权限管理

来源:互联网 发布:服装面料软件 编辑:程序博客网 时间:2024/05/18 01:40

一,权限管理简介

Linux是个多用户的操作系统,允许多个用户同时登录系统进行工作,利用系统资源。为了维护系统的稳定以及各用户工作的正常进行,用户登录时需要用户名和口令的验证。这样,系统通过UID来区分不同用户,记录用户进行的各种操作。可以在逻辑上理解为;每个用户都是一个独立的“房间”,而打开某个房门的唯一钥匙就是“用户名和口令”。当你进入房间后,你的操作及结果就保留在这个房间里,而不会对其他房间造成什么影响。这是对普通用户而言的。对于超级用户来说,他就是一个房管,拥有所有房间的钥匙,所以可以管理所有房间。但普通用户想要进入其他房间恐怕只有碰壁了!

二,三种基本权限

在Linux中,从权限角度来看,可分为四种用户,即超级用户、文件属主、文件属组和其他用户。超级用户拥有所有权限,而其它用户的权限都是可以设定的。
这里写图片描述

三,查看目录/文件的权限

ls命令用来查看目录内容,其中-l选项可以显示目录和文件的详细信息。
这里写图片描述

字段包括:文件类型,属主、属组、其他用户的权限,硬链接次数,属主,属组,文件大小,时间戳。详见我的博客http://blog.csdn.net/rdgfdd/article/details/78546518

下面以图为例详解1-10位权限:
这里写图片描述

四,用户对文件/目录的权限

这里写图片描述

若访问用户与文件属主一致,则拥有属主权限(2-4位);否则,若访问用户与文件属组一致,则拥有属组权限;否则,访问用户拥有其他用户权限。

五,更改权限

更改权限常用chmod命令,其中可分为两种更改方式:
1,文字设定法:通过符号代表权限,如:rw——-
2,数值设定法:通过数值代表权限,如:600代表rw——-

1,文字设定法

chmod [ugoa] [+-=] [rwxugo] File/Directory

选项说明:

选项1:操作的对象,即更改权限的对象。
这里写图片描述

选项2:操作,即如何更改。
这里写图片描述
选项3:更改的权限
这里写图片描述

实例解析:这里写图片描述

解析:我们用 ls 命令的 -l 选项查看文件book的权限信息,属主的权限为rw-(可读可写不可执行),我们用chmod u+x book,来给文件book的属主添加x(可执行)权限。如图所示,当我们再次查看book的权限时,其属主权限已经变成了rwx(可读可写可执行),我们将其属主权限与属组权限相同,可使用chmod u=g book.执行后,再次查看,结果正如我们预料中的那样。

2,数值设定法

chmod ugo File/Directory

用法说明:
u:一个八进制数,用来代表属主的权限
g:一个八进制数,用来代表属组的权限
o:一个八进制数,用来代表其它用户的权限

数值权限对应表如下:
这里写图片描述

实例解析:
这里写图片描述
解析:我们先用 ls 的 -l 选项查看文件book 的权限,如图所示,其权限为 r–r–r–,转换为数值为444,我们通过数值设定法、利用命令 “chmod 222 book” 将其权限设置为222,再次查看可知book的权限已经变成了222(-w–w–w-)。用同样的方法可以再次将其权限改为333(-wx-wx-wx)。

六,更改属主和属组

只有root用户和文件的属主才拥有更改其属主、属组的权限,命令为 chown。

用法:
chown U:G File/Directory

选项说明:

           -R:同时修改目录及其内部文件的属性           U:G:将文件的属主/属组设定为U和G           - -reference=/path/to/somefile    将文件或目录的属主和属组设定为与somefile一致

实例解析:
图一:这里写图片描述
图二:
这里写图片描述
图三:
这里写图片描述
解析:
由图一,a.c 和 books 的属主和属组都是root.
由图二,我们使用chmod命令来更改文件 a.c 的属主和属组。其实,以上两部可以直接用一步来完成:chown  jeffrey : jeffrey  a.c  。
由图三,我们要完成的任务就是“把文件 books 的属主和属组更改成与文件 a.c 一致”。如图所示,用 –reference=a.c 即可实现。

7,设置文件和目录的生成掩码

  用户可以使用命令 umask 来设置文件的默认生成掩码。默认的生成掩码告诉系统“当创建一个新的文件时,哪些权限是禁止的”。
 

用法:
         umask      [-S]       [ugo]

选项说明:
           
                -S:              指定生成掩码
             
                 u :             屏蔽属主的权限u

                 g:           屏蔽属组的权限g

                 o:              屏蔽其它用户的权限o

实例解析:
     这里写图片描述
解析:
  由图,我们先使用umask命令查看当前用户的生成掩码为0022,之后我们创建一个新文件b.c 。查看其属组和其他用户权限都没有w(2)权限。之后我们更改当前的生成掩码,umask  002  。然后,当我们再次创建新文件c.c时,c.c的属组拥有了w(2)权限,而其它用户的w(2)权限是被屏蔽的。

8,特殊权限

1,特殊权限介绍:
   特殊权限汉族要包括SUID,SGID,sticky-bit等。对文件可设置SUID,SGID权限;对目录可设置SGID,sticky-bit权限。具体情况如下所示:

                                                               文件的特殊权限
这里写图片描述
   
                                                                 目录的特殊权限
这里写图片描述
实例解析:
   一个典型的设置了SUID的例子就是passwd程序。passwd的功能是修改用户的密码,其实质是修改文件/etc/shadow的内容。在使用passwd命令时,普通用户也要获得对文件/etc/shadow的读写权限,但是/etc/shadow只对root用户开放权限,这个时候怎么办呢?是让/etc/shadow的权限对普通用户开放?但是若是这样的话,普通用户的权限过大,有可能造成灾难性的后果。在这种情况下,特殊权限就登上了舞台。拥有特殊权限的文件,会给操作她的用户以root用户的小马甲,也就是说普通用户在操作这类文件是,会拥有root用户的权限。所以,当普通用户执行passwd命令时,普通用户会获得root用户的“超能力”,所以可以成功地修改/etc/shadow。
   这里写图片描述
  
   另一个设置了sticky-bit的典型例子是系统临时文件目录/tmp,这样可以有效保护其他用户的文件不被别人删除。
   这里写图片描述
  
2,特殊权限设置
  设置特殊权限和之前设置普通权限一样,都使用命令chmod,并且也有字符设定法和数值设定法。
                                             
                                     特殊权限的字符和数值表示                                                                                 这里写图片描述
                     
使用字符设定法设置特殊权限:可以使用s ,t ,字符。使用数值设定法可以使用4个八进制数。重点内容
实例解析: 
这里写图片描述
解析:
  首先我们看到books的的权限,然后利用”字符设定法“分别为其增加SID(S),SGID(S)和 sticky-bit (T)特殊权限。  最后利用数值设定法将其特殊权限设定为0(即没有特殊权限)普通权限设定为644。如图。

9,ACL权限

原创粉丝点击