基础Linux命令 --------- 文件权限管理

1.文件权限存在的意义是什么?

        系统最底层安全设定方法之一,保证文件可以被用户做相应操作

  (1)权限对于文件

             r(read):是否可以查看、读取文件中的内容   --->cat file

            w(write):是否可以编辑、修改文件的内容

            x(execute):是否可以通过文件名称调用文件内记录的程序(即该文件是否有被系统执行的权限)

 

   (2)权限对于目录

             r(read):是否可以查看目录中有什么子文件或者子目录 ---> ls dir

            w(modify contents of directory):是否可以对目录中子目录或子文件的元数据进行更改 ;新建新的文件和目录;删除已                                                                           经存在的文件和目录;将已经存在的文件和目录重命名(不论该文件的权限为何);                                                                              转移该目录内的文件、目录位置。

            x(access directory):是否可以进入目录,进行创建,删除文件

           "注意":对于目录,只有进入目录后,才能对目录进行写入的操作,即只有在x生效时,w才能生效;

                           若只有x权限,则只能进入到路径下,而不能进行修改文件元数据,创建或删除的操作;

                           切换用户后,目标用户可以删除自己创建的文件,但是要根据权限决定能否删除原用户创建的文件           

                     

2.文件权限的查看

    (1)ls   -l     file          ##显示文件的属性

             

    (2)ls   -l     dir           ##显示目录中的内容的属性

             

    (3)ls   -ld   dir           ##显示目录本身的属性

             

    (4)ll       file               ##相当于ls  -l   file

    (5)ll -   d     dir          ##相当于ls   -ld     dir

    (6)ls    -lR   dir          ##递归显示目录下的所有内容的属性

               

 

3.文件权限的读取

        "ls    -l   "显示的文件或者目录的属性格式如下:

                      -  |rw-rw-r--| 1 |kiosk | kiosk | 0 | Jul 21 09:18 | file

                    [1]      [2]       [3]   [4]        [5]    [6]        [7]              [8]

         [1]表示文件的类型

                 -                ##空文件,或者文本

                 d              ##目录

                  l              ##软链接

                                                     创建文件或目录软连接 ln -s 源文件名 目标文件名

                                                     创建文件的硬链接  ln 源文件名  目标文件名

                  s              ##socket 套接字

                  b              ##block 块设备

                  c              ##字符设备

        [2]表示文件的权限

                 rw-|rw-|r--

            该位置总共包含九个字节。前三个字节表示 文件拥有者对文件的权限[u];中间三个字节表示文件所有组对文件的权限[g];最后三个字节表示 其他人对文件的权限[o]。

            注意:文件拥有着(即是谁创建的这个文件)和文件所有组(即文件属于的组)没有直接的关系

        [3]位置对文件来说表示文件硬链接个数(文件内容被系统记录的次数),对目录而言表示目录中子目录的个数(每个子目录中一定包含 . 和 .. 两个子目录)

        [4]表示文件的所有者

        [5]表示文件所有组

        [6]对文件来说表示文件大小,空文件的大小为0 ;对目录而言表示目录中子文件元数据(matedate可以理解为文件的属性)大小 ,空目录的大小为6个字节

        [7]表示文件的内容被修改的时间

        [8]是文件的名称

 

4.如何改变文件的所有人和所有组?

        以下演示操作均在 watch -n 1 "ls -lR /mnt"下进行

       (1)更改文件或者目录的的所有人

               <1> chown    username     file|dir   

         例子:   将westos文件的所有人改为student      

              

              <2>chown   -R      username        dir 

                     改变该目录和该目录中的所有内容的所有者

       (2)更改文件或者目录的所有组

              <1> chgrp    group    file|dir

         例子:将westos的所有组改成student 

               

                <2> chgrp     -R      group     dir        ##   改变该目录和该目录中的所有内容的所有组

        (3)同时更改目录或者文件的所有人和所有组

                  <1>chown    user.group     file|dir

                     

                   <2>chown   -R   user.group    dir      ##递归更改目录的所有者和所有组

                      

 

5.如何改变文件的权限?

    (1)更改方式

                  chmod     <u|g|o><+|->=<r|w|x>     file|dir

                  chmod    <u|g|o><+|->=<数字>      file|dir

                                 r     w    x     -  对应数字 4   2    1   0

           例子:

                  

      (2)文件的可读,可写,可执行权限设置

                   <1>文件的不可读,不可写,不可执行

                      

                    <2>文件的可读,可写

                      

                    <3>文件的可读,可写,可执行

                      

      (3) 目录的可读,可写,可执行权限设置

                <1>目录的不可读,不可写

                     

                <2>目录的只可读

                    

                <3>目录的可读,可写,可执行

                   

6.如何更改系统建立文件时默认保留的权力(即预留配置)?

        (1)临时设定系统预留权限

                  umask  077 

                  注意:不同的文件系统预留的配置不同,在linux系统中,目录预留022,文件预留022+111

         (2)永久更改umask

                   <1>第一步,更改系统配置文件 /etc/profile

                   

                  <2>.第二步,更改系统配置文件 /etc/bashrc

                  

                   <3>更新/etc/profile 和/etc/bashrc ,让更改立即生效

                           source /etc/profile 

                           source /etc/bashrc

                   

                     注意:若不更新这两个配置文件,则系统预留权限依旧不更改。

 

7.特殊权限的设置

     (1)sticky 粘制位

                     <1>作用:

                                   只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除

 

                      <2>命令执行

                                              chmod o+t dir

                                              chmod 1xxx dir

                      例子:将/mnt/linux目录权限改成sticky,此时切换到student用户,可以读取/mnt/linux下的内容,也可以在该目录下新建                                    文件,但是不能删除目录下的文件

                           

            (2)sgid 强制位

                           <1>作用

                                          对文件:只针对与二进制可执行文件,  当文件上有sgid时任何人执行此文件产成的进程都属于文件的的组

                                          对目录:当目录的组权限上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组

 

                          <2>设定方式

                                            chmod g+s  file|dir

                                            chmod 2xxx file|dir

                           例子:将/mnt/linux目录设定为 g+s (sgid)权限,在student用户下,在此目录下创建的文件都属于这个目录的所有                                           组 root组

                                

           (3)suid 冒险位

                         <1>作用:

                                             只针对与2进制可执行文件,当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件                                                  的所有人

                         <2>设定方式

                                         chmod u+s  file

                                         chmod 4xxx file


8.acl权限列表

 注意:以下截图均是在watch -n 1 "ls  -lR   /mnt/westos;getfacl  /mnt/westos"监控下

(1)作用

  让特定的用户对特定的文件拥有特定权限

(2)acl列表查看                 

  查看acl开启的文件的权限

  getfacl           file

(3)acl列表的管理

  -rw-rwxr--+ 1 root root 0 Jul 21 15:45 file

                                        ^

  注意:   acl开启"开启后,权限变成列表中的权限,默认权限不生效"

  <1> 设定username对file拥有rwx权限(可以用数字设定)      

          setfacl  -m   u:username:rwx     file 

  <2>设定group组成员对file拥有rwx权限

         setfacl  -m    g:group:rwx       file 

         例子:设定student用户和student组对/mnt/westos文件有"7"和“5”的权限     

<3>从acl列表中删除username

setfacl  -x u:username file 

<4>从acl列表中删除groupname

setfacl  -x g:groupname file    

 例子:删除student用户和student组在acl列表中的特殊权限

   

<5>关闭file上的acl列表

 setfacl   -b      file 

 

(4)mask值

   <1> 作用:

   在权限列表中mask标示能生效的权力值

 

    <2>当用chmod减小开启acl的文件权限时,mask值会发生改变,此时会产生无效的用户权限

   例如: chmod g-rwx  /mnt/westos

    

   <3>恢复mask值

    setfacl -m m:rw westos

    

(5)acl的默认权限

  <1>设定方式

 setfacl  -m  d:u:username:权限   目录名称

 例子:setfacl -m d:u:student:rwx /mnt/test

   

 注意: acl默认权限只针对目录设定

"acl权限只针对设定完成之后新建立的目录生效,而已经存在的是不会继承默认权限"

<2>去掉默认权限:setfacl   -k    /mnt/test

"注意:"只能去掉这一层目录的默认,对于新建的继承默认权限的目录不能

   

   

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值