Linux系统中的文件权限

一、文件权限存在的意义

文件权限是系统最底层安全设定方法之一

它保证文件可以被可用的用户做相应操作

二、文件权限的查看

ls -l  file     ##查看文件权限

ll file          ##查看文件权限

Linux系统中的文件权限

注意:ls -l = ll

ls -ld dir     ##查看目录本身权限

ll -d dir       ##查看目录本身权限

Linux系统中的文件权限

注意:ls -ld = ll -d

ls -li file 查看文件的节点号

Linux系统中的文件权限

三、文件权限的读取

Linux系统中的文件权限

 - | rw-r--r-- | 1 | root | root | 0 | Jul 21 21:06 | file

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

[1]

文件的类型

-      ##空文件,或者文本

d     ##目录

l      ##软链接 ,相当于快捷方式

s     ##socket 套接字,程序的接口(程序对外提供接口的交互文件)

b     ##block 块设备 /dev/sda

c     ##字符设备 /dev/pts/0(ps命令查看当前字符进程名称)

[2]

文件的权限

rw-|rw-|r--

 1     2    3

1.[u]文件拥有者对文件能做什么操作

2.[g]文件所有组对文件能做什么操作

3.[o]其他人对文件能做什么操作

[3]

对文件:文件硬链接个数(文件内容被系统记录的次数)

对目录:目录当中子目录的个数

Linux系统中的文件权限

[4]

文件的所有人

[5]

文件所有组

[6]

对文件:文件大小

Linux系统中的文件权限

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

[7]

文件的内容被修改的时间

[8]

文件的名称

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

chown|chgrp

chown username file|dir

Linux系统中的文件权限

Linux系统中的文件权限

chown user.group file|dir

Linux系统中的文件权限

Linux系统中的文件权限

chown -R user.group dir

Linux系统中的文件权限

chgrp group file|dir

Linux系统中的文件权限

Linux系统中的文件权限

chgrp -R group dir

Linux系统中的文件权限

五、如何改变文件的权限

1.对权限的理解

r

对文件:是否可以查看文件中的内容 --->cat file

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

w

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

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

x

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

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

注意:删除文件需要w和x的权力

            r和x权限基本上是都给或者都不给

            w权限出现在rx之后

2.更改方式

文件的权限有两种更改方式

方法一:chmod <u|g|o><+|-|=><r|w|x> file|dir

chmod u+x file1

Linux系统中的文件权限

chmod g-r file2

Linux系统中的文件权限

chmod ug-r file3

Linux系统中的文件权限

chmod u-r,g+x file4

Linux系统中的文件权限

chmod -r file5   

Linux系统中的文件权限

chmod ugo=rx file6

Linux系统中的文件权限

chmod ugo-rwx file7

Linux系统中的文件权限

chmod   u+w,g+w,o+w  file8

Linux系统中的文件权限

注意:chmod +w /file 只会给u用户增加w权限,因为w权限比较危险。需要添加w权限时必须采用g+w或r+w方式添加。

方法二:chmod xxx file|dir

设定权限可以用指定数字快速设定:

r-x|r--|--x

 5   4   1

7=rwx         6=rw-         5=r-x         4=r--

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

Linux系统中的文件权限

六、umask

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

Linux系统中的文件权限

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

Linux系统中的文件权限

永久更改umask

vim /etc/profile       62行 022改为077   

vim /etc/bashrc      73行 022改为077

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

source /etc/bashrc       ##让更改立即生效

Linux系统中的文件权限

Linux系统中的文件权限

Linux系统中的文件权限

注意:

能够赋予用户的权力越多,意义越大;赋予权力越少,安全性越高。

目录默认权限为755   系统设置保留022

Linux系统中的文件权限

文件默认权限为644   系统设置保留022  剩下111在系统内核直接默认被减去

Linux系统中的文件权限

七、特殊权限

1.sticky ##粘制位

作用:

只针对目录生效,当一个目录上有sticky权限时

在这个目录中的文件只能被文件的所有者删除

设定方式:

chmod o+t dir

chmod 1xxx dir

Linux系统中的文件权限

2.sgid ##强制位

作用:

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

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

设定方式:

chmod g+s file|dir

chmod 2xxx file |dir

对文件:

Linux系统中的文件权限

Linux系统中的文件权限

Linux系统中的文件权限

Linux系统中的文件权限

对目录:

Linux系统中的文件权限

3.suid ##冒险位

作用:

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

可用于对用户进行升降权限

设定方式:

chmod u+s  file

chmod 4xx

Linux系统中的文件权限

八、acl权限列表

 

1.作用

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

注意:rhel6.0以及之前的版本默认不支持acl功能

2.acl列表查看

Linux系统中的文件权限

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

               ^        ^

              [1]     [2]

[1]此处权限不准,要使用getfacl命令查看

[2]acl开启

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

Linux系统中的文件权限

#file:file              ##文件名称

#owner: root       ##文件拥有者

#group: root        ##文件拥有组

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

user:kiosk:rwx   ##指定用户的权限

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

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

other::r                 ##其他人的权限

3.acl列表的管理

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

Linux系统中的文件权限

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

Linux系统中的文件权限

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

Linux系统中的文件权限

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

Linux系统中的文件权限

4.mask值

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

当用chmod减小开启acl的文件权限时mask值会发生改变

chmod g-w file

Linux系统中的文件权限

如果要恢复mask值

setfacl -m m:rw file

Linux系统中的文件权限

5.acl的默认权限设定

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

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

setfacl -m d:u:username:rwx dir      ##设定username对dir拥有默认rwx权限

Linux系统中的文件权限

Linux系统中的文件权限

九、i权限

可用于限制root超级用户的权利

lsattr file          ##查看i权限

Linux系统中的文件权限

chattr +i file     ##添加i权限

Linux系统中的文件权限

root用户在编辑vim文件执行:wq!退出时,会出现错误而无法保存

Linux系统中的文件权限

chattr -i file       ##删除i权限

Linux系统中的文件权限