码迷,mamicode.com
首页 > 其他好文 > 详细

用户解析库与文件权限

时间:2017-11-18 15:23:08      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:文件权限 用户解析库

一、与用户和组账户相关的文件

    1./etc/passwd

        用户的解析库

        每一行是一条记录,记录一个和用户相关的内容

        root:x:0:0:root:/root:/bin/bash

         1   2 3 4  5     6     7   8

    

        1.用户账户名称

        2.以前是用于保存账户密码,现在使用x来表示密码占位符

        3.用户账户的UID

        4.用户账户的GID(基本组的ID)

        5.可选的,为了存放信息的目的而设,注释信息,如用户职位、完整名称等

        6.用户目录家目录的绝对路径

        7.用户的默认登录shell

    

            usermod命令实际是修改passwd文件中的字段,当使用useradd时会在passwd文件追加一行信息


    2./etc/group

        root:x:0:gentoo

         1   2 3   4

    

        1.组账户名称

        2.组账户密码占位符

        3.组账户GID

        4.该以该组为附加组的用户列表

    

    3./etc/shadow

        root:$6$t6zR/bnP6Sfa60QW$ePc6rOskoOYA9ksL9RKB4NZcFWf6zWw.sXPbhmfO/itXzJ35BWPSu2d5Lh3Cr3.LEtd9fjadEw8ogTk22q9D/0::0:99999:7:::

    

        前半段为用户账户登录名和密码加密字段;加密字段为:加密算法+salt+加密字符串;

        : :0:99999:7: : :

         1 2   3   4 5 6 7

    

        1.最后一次修改密码的时间,其表示法为从1970年1月1日到当前系统时间

        2.用户密码的最短使用期限,理解为多长时间内不能更改密码,0表示随时可以更改密码

        3.用户密码的最长使用期限

        4.用户的用户密码的使用时间在达到使用期限前多少天开始给用户发送警告信息,默认为七天,用户密码过期后 登录会提示修改密码

        5.用户密码过期之后的宽限期,宽限期默认是无限,宽限期内登录会提示修改密码,宽限期后只能通过root用户修改密码

        6.用户密码的绝对有效期,其表示法为从1970年1月1日到当前系统时间

        7.保留,未被使用


    4./etc/gshadow

        root: : :gentoo

         1   2 3   4


        1.组的名称

        2.组账户真正的加密密码

        3.组管理员,现在废弃

        4.组成员


        gpasswd 可以设置组的密码及管理组成员

            -a LOGIN_NAME GROUP_NAME 为账户添加附加组

            -d LOGIN_NAME GROUP_NAME 为账户删除附加组


        newgrp 用一个新的组重新登录到系统,需要被指定的组有正确的密码设置



    5./etc/default/useradd

        用于定义创建用户的默认属性


        # useradd defaults file

            GROUP=100 GROUP=100意思是当创建用户时创建与用户名相同的组作为基本组

            HOME=/home 在/home目录中窗为用户创建一个以用户名为目录名的目录

            INACTIVE=-1 在创建用户时,设定密码过期之后的宽限期,默认为-1

            EXPIRE= 在创建用户时设定用户密码的绝对失效日期,默认没有启用

    SHELL=/bin/bash 默认shell

    SKEL=/etc/skel 默认家目录中的文件

    CREATE_MAIL_SPOOL=yes 创建用户时,是否直接为用户创建邮箱文件,默认创建


    6./etc/login.defs

        用于定义与shadow工具有关的属性,包括用户邮箱路径,密码的时间参数、UID和GID的范围、删除用户账户的命令、是否设置私有组(仅包含一个用户并作为该用户主要组的组)、权限的掩码、家目录的创建开关、加密算法、默认的UID和GID的选择范围


    7./etc/skel(目录)

        为新创建的用户的家目录提供默认的shell配置文件 



二、文件系统的权限

    1.DAC:自主访问控制

安全上下文:任何在计算机中执行的任务都是由进程来实现,因此进程有必要使用或访问某些文件数据资源,进程和其要操作的文件之间的关系,就定义为安全上下文


在DAC模型当中,定义安全上下文的方式很简单:


    所有权

                哪个用户启动的进程,那个用户就是进程的所有者;进程的所有者可以变更

                任何创建文件的用户就是该文件的所有者,文件的所有者可以变更

            使用权

                在文件上定义的权限

                三个权限:所有者权限、所属者权限、其他人权限


安全上下文的匹配规则:

            当某个进程试图操作某个文件时,DAC将做如下规则匹配:

                1)判断进程的所有者和文件的所有者是否为同一用户,如果是,则直接应用文件的所有者权限

                2)如果不是,则进一步判断进程的所有者是否为文件的所属组的成员,如果是,则直接应用文件的所属组权限

                3)如果不是,则应用其他人权限


    2.文件权限的构成:

        使用权:MODE,Permission

            三个基本权限:

                r:可读

                w:可写

                x:可执行


        目录文件:

            r:可以使用ls命令获取其包含的文件名列表(目录的内容为文件名)

            w:可以在此目录中进行文件名的创建、删除、修改

            x:可以使用ls -l命令来查看各个文件的属性信息;在路径中引用该目录


        非目录文件:

            r:可以利用cat类命令获取文件中存放的数据信息

            w:可以修改文件中的数据信息

            x:可以将文件发起为进程


        获取权限的使用权和所有权的相关信息,可以使用ls -l

    属主权限;此权限位标识为user,简写为u

    属组权限:此权限位标识位group,简写为g

    其他用户权限:此权限为表示为other,简写为o

    所有权限位可以统一用all标识,简写为a


    3.数字权限标识法:

        --- 000 0

        --x 001 1

        -w- 010 2

        r-- 100 4


使用符号标识权限和数字标识权限的区别:

1.使用符号标识可以只标识某个特定的权限位,也可以同时标识所有的权限位

u=rx ug=rx u=rwx,g=rx,o=r a=rwx

2.使用数字标识法只能同时标识所有权限位

755 644 7==007


    4.修改文件的使用权

chmod

            1)符号标识法:

                u,g,o,a 表示权限位

                +,-,= 表示授权方式

                +:表示在指定权限位增加权限

                -:表示在指定权限位减少权限

                =:将指定权限位指定为"="之后的权限

                r,w,x 表示具体权限


                注意:chmod +|- r|x FILE 表示在所有权限位增加或撤销读或执行权限

                    chmod +|- w FILE 表示仅在所有者权限位增加或撤销写权限            

        

                对于文件来说,执行权限是非常重要的安全上下文标识,因此默认情况下,所有的非目录文件都不应该有执行权限,因为一旦非目录具有了执行权限,则意味着该文件可以被执行,发起为进程,则可以按需使用系统资源


           2) 八进制数字权限标识法

                具体权限用八进制数字表示

        

            -R 递归的设定目标文件或目录


    5.修改文件的所有权

chown 修改文件的属主和属组

            ~]#  chown user3 test1 只修改所属主,不改变所属组

            ~]#  chown user3: test2 改变所属主,并且将所属组改变为user3的主要组

            ~]#  chown :user3 test3 改变所属组,所有者不变

            ~]#  chown user3:myuser test4 同时修改所属组和所属主

            特别的,chown命令中可以使用 . 代替:


            -R 递归的设置目标文件或目录的所有权



chgrp(不常用)


mkdir

    -m 在创建目录时为其制定权限


install    复制文件


            -g 设定目标文件的所属组为指定组

            -m MODE 设置权限,默认是755

            -o 设定目标所有者,仅root可用

            install命令不能复制目录,即不能以目录为源文件,如果其源文件是一个目录,则install命令会进入该目录,依次复制其中所有非目录


    6.特殊权限

1)SUID

            仅设置在可执行文件上,默认情况下,当用户去执行此类文件时,被发起的进程的所有者不是进程的发起者而是该文件的所有者;SUID在属主的权限位中的执行权限位,如果属主具有执行权限则表示为s,如果没有则显示为S


            管理SUID权限:

                1.符号标识法:chmod u+s FILE

                2.数字表示法:chmod 4755 FILE


2)SGID

    可设置在可执行文件或目录上(一般都设置在目录上),如果某个目录设置了SGID权限,并且对于某些组内用户有写权限,则所有在此目录中创建的新文件和目录的所属组均为其父目录的所属组,而并非发起用户所在的主要组;SGID在属组的权限位中的执行权限位,如果属组具有执行权限则表示为s,如果没有则显示为S


            管理SGID权限:

                1.符号标识法:chmod g+s DIR

                2.数字表示法:chmod 2755 DIR


3)STICKY

    仅设置在目录的其他用户权限位的执行权限上


            如果在某个目录上的权限设置为多个用户都拥有写权限,那就意味着凡是拥有写权限的用户都能直接管理该目录中的所有文件名,包括改名文件及删除文件名等操作,因此需要再这样的目录上设置STICKY特殊权限;如果此类目录设置了STICKY,则所有用户即便拥有写权限也仅能删除所有者为其自身的文件


    STICKY权限的显示位置:在目录的其他用户的权限位的执行权限上,如果该权限为本来有执行权限,则显示为t,否则为T


    管理STICKY权限:

1.符号标识法:chmod o+t DIR

2.数字表示法:chmod 1770 DIR


    7.权限遮罩码:umask

作用:创建目录或文件时,被创建出来的文件或目录的默认权限上删除遮罩码上对应的权限


注意:在创建和文件时,默认不设置特殊权限

对于目录:默认权限为0777-umask

对于非目录:默认权限为0666-umask


unmask NUMBER 设置遮罩码

unmask 显示当前遮罩码


umask配置文件在/etc/bashrc

如果用户的UID大于199且用户名和基本组名相同时,则遮罩码为002,否则为022


    8.文件的扩展属性

lsattr

    MODE:+-=[aAcCdDeijsStTu]

         a:在向文件写数据时,只能以附加的方式进行写操作;文件的内容不能被更改和删除,一般会为日志文件设置此属性;

         A:文件的访问时间戳控制属性,对于并发访问较高的文件应该设置此属性防止IO高负荷

         c:设置是否自动压缩之后再储存

         C:是否开启写时复制功能

         d:在使用dump备份文件系统时,跳过属性设置为d的文件

         D:设置文件在文件系统中的异步写操作

         i:设置文件不能被删除,改名及设定链接关系

         s:设置文件的保密性删除

         u:与s相反,文件被删除,储存器中会继续保存其中内容,仅仅是删除了文件名


    9.FACL(filesystem access control list),文件系统访问控制列表,要向应用此功能,必须要让文件系统支持,默认支持

FACL为文件系统的额外赋权机制;在原有的u,g,o权限之外,让普通用户能够控制权限赋予另外的用户或组的一种赋权机制


        这种机制在CentOS或者RHEL7之后的发行版本中,才逐渐成熟;

        与FACL相关的命令


            setfacl FILE

-m acl_spec 为指定文件设置acl_sepc

-x acl_spec 将acl_spec从指定文件上溢出


acl_spec:acl_specification,acl规格,访问控制列表

    u:USERNAME:MODE

    g:USERNAME:MODE

MODE一般使用符号权限标识法标识的权限


示例:为文件赋予指定用户的额外访问权限

    setfacl -m u:link:rwx /tmp/temp


    撤销指定文件的额外访问权限

    setfacl -x u:link /tmp/temp


                注意:如果设置了FACL之后,再修改目标文件的试用权限,那么FACL中设置的权限条目可能受到影响而导致授权失败;因此,为了保证没有此项干扰,应该先调整目标文件或目录的权限,再设置FACL



    getfacl FILE


用户解析库与文件权限

标签:文件权限 用户解析库

原文地址:http://papapa213.blog.51cto.com/13390432/1983000

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!