LINUX权限设定

文件权限

  • 文件权限存在的意义

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

  • 文件权限的读取

ls -l file                     查看文件权限

ls -ld dir                    查看目录

ll file                          ls -l file

ll -d dir                      ls -ld dir

  • 文件权限的读取

以 file 文件为例,文件权限的内容可以分为八部分

-rw-r--r-- 1 root root 0 Jul 23 09:27 file

-     |      rw-r--r--    |    1    |    root     |     root    |     0     |     Jul 23 09:27      |      file

1)文件类型

-                        空文件

d                       目录

l                        软链接

s                       socket 套接字

b                       block 块设备

c                       字符设备

2)文件的权限:rw-r--r-- 此处分为三部分,第一部分为前三位,【u】标示文件拥有者可以对文件能做什么操作;第二部分为中间三位,【g】标示文件所有组能对文件做什么操作;第三部分为后三位,【o】标示其他人能对文件做什么操作

3)对文件:文件硬链接个数(文件内容被记录的次数);对目录:目录中子目录的个数

4)文件的所有人

5)文件的所有组

6)对文件:文件大小;对目录:目录中子文件元数据(matedate可以理解为文件的属性)大小

7)文件最后一次修改的时间

8)文件的名称

  • 如何改变文件的所有人和所有组

chown username file                           修改文件的所有人

chown username dir                            修改目录的所有人

chown user.group file                           修改文件的所有人和所有组

chown user.group dir                           修改目录的所有人和所有组

chown -R user.group dir                      修改目录及目录下文件的所有人和所有组(其中 . 与 : 通用)

chgrp group file                                     修改文件的所有组

chgrp group dir                                      修改目录的所有组

chgrp -R group dir                                  修改目录及目录下文件的所有组

  • 如何改变文件的权限

对权限的理解:r       对文件:是否可以查看文件中的内容(cat file)

                                    对目录:是否可以查看目录中有什么文件(ls dir)

                            w      对文件:是否可以改变文件里面记录的字符

                                    对目录:是否可以对目录中子目录或子文件的元数据进行更改

                            x       对文件:是否可以通过文件名称调用文件内记录的程序

                                     对目录:是否可以进入目录

更改权限方式:chmod <u|g|o><+|-|=><r|w|x>  file            修改文件权限

                            chmod <u|g|o><+|-|=><r|w|x>  dir             修改目录权限

                           chmod 数字 目标                                         修改目标权限

                               r:4                 w:2               x:1

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

  • umask

umask                   系统建立文件时默认保留的权力

umask 077            临时设定系统预留权限为077

永久更改 umask

         vim /etc/profile          系统配置文件

                     if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then     umask 002        普通用户的umask

                     else       umask 022                                                                                                                 超级用户的umask

                     fi

        vim /etc/bashrc      shell 配置文件

        if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then     umask 002
                     else       umask 022
                     fi

source /etc/profile                   让更改立即生效

source /etc/bashrc

  • 特殊权限

sticky       粘制位

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

     设定方式:

             chmod o+t dir

             chmod 1xxx dir

sgid          强制位

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

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

     设定方式:

             chmod g+s file                 

             chmod 2xxx file

             chmod g+s dir

             chmod 2xxx dir

suid          冒险位

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

     设定方式:

              chmod u+s file

              chmod 4xxx file

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

                                               + 号标示 acl 开启

                                               getfacl file       查看 acl 开启的文件权限

                                                        #file:file                                              文件名称 

                                                        #owner:root                                       文件拥有者

                                                        #group:root                                       文件拥有组

                                                        user::rw-                                             文件拥有人的权限

                                                        user:student:rwx                               指定用户的权限

                                                        group::---                                            文件拥有组的权力

                                                        mask::rwx                                           能赋予用户的最大权力阀值

                                                        other::---                                              其他人的权限

acl 列表的管理

       setfacl -m u:username:rwx file                     设定 username 对 file 拥有 rwx 权限

       setfacl -m g:group:rwx file                             设定 group 组成员对 file 拥有 rwx 权限

       setfacl -x u:username file                              从 acl 列表中删除 username

       setfacl -b file                                                    关闭 file 上的 acl 列表

mask 值

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

       当用 chmod 减小开启 acl 的文件权限时 mask 值会发生改变,可使用 setfacl -m m:rwx file 恢复 mask 值

acl 的默认权限设定

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

文件属性

       用chattr执行改变文件或目录的属性,可执行lsattr指令查询其属性

猜你喜欢

转载自blog.csdn.net/c_abua/article/details/81175076