<1> 简单介绍:

<2>文件的详细信息

 <3>文件的一般权限(以表格形式进行说明)

<4>修改文件的属主、属组

<5>修改文件权限

 <6>特殊权限

 <7>ACL(Access Control List,权限访问控制列表)


<1> 简单介绍:

    1.在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录,即权限决定了用户对该文件的操作方式。

2.Linux文件的权限具体分为三种类别:属主的权限u、属组的权限g、其他人的权限o 

3.每一种类别都具有自身可读、可写、可执行的权限(字母表示:r、w、x),可以分别对每一种类别的权限进行设置。

4.每一个文件只能属于一个用户和属组,若其它用户想要对文件进行操作,可以把其它用户添加到该文件的属组中。

<2>文件的详细信息

 -rw-r--r--. 1 root     root    0 Aug  4 11:37 file1
拆分解读:
1.- 表示文件类型为普通文件
2.rw-r--r-- 表示文件的权限 每三组为一类别,依次为属主权限:rw- 、属组权限:r-- 、其他用户权限:r--
3. 其后依次表示 文件访问控制列表(.)、硬链接次数为1、属主(root)、属组(root)、文件大小、文件最近一次的修改时间、文件名

 <3>文件的一般权限(以表格形式进行说明)

权限普通文件目录文件
r

可读取此文件的实际内容(cat查看文件)

具有读目录结构列表的权限

w

可编辑该文件的内容(vim,echo),但并不具备删除该文件本身的权限(删除文件由文件的上层目录控制,跟文件本身的权限无关。)

具有删除、移动目录内文件的权限
x

该文件具有可以被系统执行的权限

用户能否进入该目录

(cd),chmod

同时有w和x权限才可以创建、删除文件和目录

<4>修改文件的属主、属组

命令格式:                      命令代码(示例):
chown 属主 文件名             chown xiaoming /usr/bin/passwd
chown 属主:属组 文件名        chown xiaoming:xiyouji file1 
chgrp 属组 文件名             chgrp xiyouji mulu1 

<5>修改文件权限

 更改文件权限有两种方式(任选一种即可)

 1、用权限字母(rwx)来设置权限 

命令格式:chmod u/g/o/a   =/+/-   r/w/x  文件名
示例:文件属组权限更改为r--      代码:chmod g=r 文件名  注 = 表示新权限覆盖旧权限
     若文件属组权限增添 w 权限   代码:chmod g+w 文件名 
     同理chmod  g-w  文件名 就表示删除属组 w 的权限

2、把权限字母 r 、w、 x依次用数字表示 4 、2、1  用权限数字来替代权限代码。

如更改文件属主权限为rw- 、属组权限为r--、其他用户权限为rw- 其命令为:

chmod 646 文件名

 <6>特殊权限

1、 suid:u+s,让进程的所属者不再属于它的发起者,而是属于程序文件本身。(suid只对二进制文件有效;调用者对该文件有执行权;在执行过程中,调用者会暂时获得该文件的所有者权限;该权限只在程序执行的过程中有效)

   示例:非root用户更改用户密码需执行命令passwd,passwd为外部命令,可执行文件为/usr/bin/passwd。当开始调用可执行文件后 此文件会变为进程 此时可执行文件的属主就是进程的属主,但进程去编辑用户密码配置文件(/etc/shadow)需要属主为root用户,否则无法编辑密码配置文件。但对passwd的可执行文件添加 u+s权限后 文件的属主就会为root用户 ,相应进程属主也跟着变为root,从而编辑用户的密码配置文件修改密码。

流程图如下:

 2、sgid:g+s,对于普通文件,以组的权限执行,修改/usr/bin/touch的g+s,touch文件后文件所属组为root(作用于普通文件时,和suid类似);对于目录文件,目录的属组是谁,在目录下创建的文件的属组是目录的属组。

        示例:在mulu1中创建其他文件  ,目录的属组为xiyouji,对该目录文件设置g+s权限后,在该目录下创建的其它文件的属组也为xiyouji。

 3、stickyo+t,对目录文件设置o+t权限后,可删除自己在该目录下创建的文件,不能够删除其他用户在同目录里创建的文件。

命令格式:
chmod o+t 目录文件名

 <7>ACLAccess Control List,权限访问控制列表)

可以对某个文件设置该文件具体的某些用户的权限,意思就是通过ACL可以对一个文件权限做扩展,可以让不同的用户对某个文件有不同的权限。

	<1>获取文件的访问控制信息: getfacl 文件名
 	<2>修改文件的acl: 
         1、修改用户的权限  setfacl -m u:用户名:权限 文件名/目录名
              示例:setfacl -m u:redhat:rw file1  表示跟redhat用户单独设置rw的权限

         2、修改组的权限  setfacl -m g:组名:权限 文件名
              示例: setfacl -m g:redhat:rw file1 

    <3>删除acl所有配置信息:setfacl -b 文件名
    <4>单独删除用户:setfacl -x g/u:组名/用户名 文件名
    

  

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。