文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作 为一个程序执行。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的任 何组合。

有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。所以文件存在的意思就是权限时系统最底层安全设定的方法之一,同时也可以别可用的用户作相应的操作。
1. 文件权限的查看

  文件权限我们可以用  ls   -l   来查看 ,目录则用  ls   -d   来查看。

例如:

2. 文件权限的读取

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

类型          权限          文件别硬连接的次数         文件所属的用户        文件所属的组           文件的大小     最近修改的时间     文件名

文件的权限类型

   -空文件,或者文本
    d目录
    l软连接
    ssocket  套接字
    bblock  块设备
     c字符设备

文件的权限

     rwx  |   r-x     | r--

     u           g        o

文件的权限分三部分组成:  u  文件的所有人,  g     文件的所有组  ,   o   文件的其他人

3.修改文件/目录权限的命令

   文件用户,用户组的修改     

        chown        用户名          文件                        表示要修改文件的用户

       chgrp           用户组          文件                       表示要修改文件的用户组

    目录用户,用户组的修改

        chown         -R     用户名          文件                        表示要修改目录的用户

        chgrp           -R     用户组          文件                       表示要修改目录的用户组

chown       用户:用户组          文件/目录                    表示修改该文件/目录的用户和用户组

4.  权限的更改

我们用chmod 命令来改变文件或目录的权限

chmod        [(u,g,o)  (+,-,=)  (r,w,x)]            文件/目录

 chmod     u+w      file      表示  file  该文件的所有人权限加上了可读的权限,等等以此来修改文件/目录的权限

但是这种方法太麻烦,不够高效。所有我们用数字的方式来修改:

r=4                 w=2                   x=1

那么就可以表示为:rwx=7   rw- =6    r-x  = 5     r--  = 4

                                    -wx =3   -w- =2    --x = 1    --- = 0

那么我们就可以直接用数字的方式来修改权限,例如:

 

默认权限的修改

普通文件常常是为了记录数据,且为安全起见,不随便开放“x”权限,所以默认最大为开放读写(rw-rw-rw-),即“666”;

目录则需开放“x”以便切换至该目录,默认最大是“777”;

创建一个新目录或普通文件,其默认权限为上述的最大默认权限减去遮罩码;

  • 比如遮罩码设置为0022(第一位用于特殊权限,下述),则新建文件即为“rw-rw-rw-”减去“- - - -w - - w -”等于“rw- r- -r- -”;新建目录用同样方法计算可得默认权限为“rwxr-xr-x”。

显示遮罩码,选项“-S”表示以符号(Symbolic)方式显示:

设置遮罩码

使用命令设置的遮罩码仅在当前shell生效。永久生效的是配置文件,/etc/bashrc中使用了该命令设置了各用户的默认遮罩码。

5. 特殊权限:

     1.sticky              Sticky Bit,简称SBIT。仅对目录有效。若目录有此权限,目录的其他用户的“x”权限位置变为“t”。

具有SBIT权限的目录A,其中有文件B,则仅目录A的属主、文件B的属主和root可以对其重命名、剪切、删除等。

设定方式:

chmod o+t     dir

chmod 1xxx     dir

Set UID,简称SUID。该权限仅对二进制文件有效,且仅在该文件执行过程中生效。当文件具有SUID权限时,文件属主的“x”权限位置变为“s”。

若文件具有SUID权限,且执行者对于该文件有“x”权限,当文件被其执行时,执行者将具有该文件属用户的权限

设定方式:

               chmod u+s  file

               chmod 4xxx file             

当一目录具有SGID权限时,若用户对该目录有“r、x”权限(可“cd”至该目录),则用户“cd”至该目录后,用户的有效用户组不会变化,但在这个目录中创建的文件的属组,则不是用户的当前有效用户组,而是该目录的属组。

举个例子,用户user1在家目录下创建的文件的属组是user1,而在目录westos下创建的文件test1的属组是目录westos的属组。

设定方式:

chmod g+s  file|dir

chmod 2xxx file|dir

facl权限:

     fcal列表查看

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

         getfacl       file           

fcal权限的设定:

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列表

 

显示文件结果中student组对file文件有rw权力,文件的详细信息中student用户组对该文件有特殊的权限

facl的默认权限设定

facl默认权限只针对目录设定

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

setfacl -m d:u:student:rwx file

setfacl -k file   取消默认权限设定

 

Logo

更多推荐