1-9 RHEL7-文件权限管理

 

本节所讲内容:php

  文件的基本权限:r w x (UGO+ACL)html

  文件的高级权限:suid sgid stickypython

第1章 文件的基本权限

1.1 权限的做用

经过对文件设定权限能够达到如下三种访问限制权限:mysql

q  只容许用户本身访问;linux

q  容许一个预先指定的用户组中的用户访问;sql

q  容许系统中的任何用户访问。shell

1.2 查看文件权限

咱们能够经过ls命令来查看一个文件的具体信息,加参数 –l 能够查看这个文件的权限信息vim

[root@panda mnt]# lswindows

[root@panda mnt]# touch a.txt安全

[root@panda mnt]# ll a.txt

-rw-r--r-- 1 root root 0 Dec  5 20:37 a.txt

[root@panda mnt]# ls -l a.txt

-rw-r--r-- 1 root root 0 Dec  5 20:37 a.txt

[root@panda ~]# ll

total 8

-rw-------. 1 root root 1572 Jul 28 06:40 anaconda-ks.cfg

drwxr-xr-x. 2 root root    6 Jan  1  2017 Desktop

drwxr-xr-x. 2 root root    6 Jan  1  2017 Documents

drwxr-xr-x. 2 root root    6 Jan  1  2017 Downloads

-rw-------. 1 root root 1726 Jul 27 23:13 initial-setup-ks.cfg

drwxr-xr-x. 2 root root    6 Jan  1  2017 Music

drwxr-xr-x. 2 root root    6 Jan  1  2017 Pictures

drwxr-xr-x. 2 root root    6 Jan  1  2017 Public

drwxr-xr-x. 2 root root    6 Jan  1  2017 Templates

drwxr-xr-x. 2 root root    6 Jan  1  2017 Videos

[root@panda mnt]# stat -c %a a.txt

644

[root@panda mnt]# stat -c %A a.txt

-rw-r--r—

[root@panda ~]# getfacl /etc/hosts

getfacl: Removing leading '/' from absolute path names

# file: etc/hosts

# owner: root

# group: root

user::rw-

group::r--

other::r--

 

文件权限基本解释:

-

rwx

r-x

r-x

user1

user1

time

FILENAME

文件类型

拥有者的权限

所属组的权限

其余人的权限

拥有者

属组

最后修改时间

对象

 

 

其中:文件类型,能够为p、d、l、s、c、b和 –

q  p表示命名管道文件

q  d表示目录文件

q  l表示符号链接文件

q  -表示普通文件

q  s表示socket套接口文件,好比咱们启用mysql时,会产生一个mysql.sock文件

q  c表示字符设备文件

q  b表示块设备文件

linux中文件扩展名

     windows里经过扩展名来区分文件类型的。linux里文件扩展名和文件类型没有关系。但为了容易区分和兼容用户使用windows的习惯,咱们仍是会用扩展名来表示文件类型。举例以下:

l  源码.tar、.tar.gz、.tgz、.zip、.tar.bz表示压缩文件,建立命令通常为tar,gzip,zip等。

l  .sh表示shell脚本文件,经过shell语言开发的程序。

l  .pl表示perl语言文件,经过perl语言开发的程序。

l  .py表示python语言文件,经过python语言开发的程序。

l  .html、.htm、.php、.jsp、.do表示网页语言的文件。

l  .conf表示系统服务的配置文件。

l  .rpm表示rpm安装包文件。

例如:

[root@panda mnt]# ll a.txt

-rw-r-xr-- 1 root root 1 Dec  5 20:37 a.txt

       表示文件a.txt是普通文件,文件的全部者是root用户,而root用户属于root组,文件只有1个硬链接,长度是5个字节,最后修改时间12月5日20:37。

       全部者root对文件有读写执行权限,root组的成员对文件有读和执行权限,其余的用户对这个文件只有读的权限

1.3 权限说明

有三种权限能够应用:读取,写入与执行,这些权限对访问文件和目录的影响以下:

权限

对文件的影响

对目录的影响

r(读取)

能够读取文件的内容

能够列出目录的内容(文件名)

w(写入)

能够更改文件的内容

能够建立或删除目录中的任意文件

x(执行)

能够做为命令执行文件

能够访问目录的内容(取决于目录中文件的权限)

对于文件:

q  r:读  

q  w:写  

q  x:执行

对于目录:

q  r:读(看到目录里面有什么)     ls

q  w:建文件、删除、移动                   touch   mkdir    rm   mv  cp

q  x:进入                                         cd   cat

具体说明:

       r (Read,读取):对文件而言,具备读取文件内容的权限;对目录来讲,具备浏览目录的权限.
       w (Write,写入):对文件而言,具备新增、修改文件内容的权限;对目录来讲,具备删除、移动目录内文件的权限。
       x (execute,执行):对文件而言,具备执行文件的权限;对目录了来讲该用户具备进入目录的权限。
       -:表示不具备该项权限

结束:

       对于文件的全部者或者是属主, root能够将这些权限改变为任何它想指定的权限;

例如:一个文件只有读权限,那么它就禁止任何普通用户对它的修改;若是文件只有执行权限,那么系统容许它像一个程序同样执行。

1.4 文件拥有者

全部者-用户组-其余用户

全部者: 就是建立文件的用户,这个用户拥有对它所建立的文件的一切权限,全部者能够容许其所在的用户组能够访问全部者的文件。

用户组: 用户组是具备相同特征用户的逻辑集合,有时咱们须要让多个用户具备相同的权限,好比查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问受权,若是有10个用户的话,就须要受权10次,显然这种方法不太合理;另外一种方法是创建一个组,让这个组具备查看、修改此文件的权限,而后将全部须要访问此文件的用户放入这个组中,那么全部用户就具备了和组同样的权限。这就是用户组。

其它用户:系统内的其余全部者用户就是other用户类

1.5 举例说明

1.5.1 常见几种文件权限组成

u  -rwx------:文件全部者对文件具备读取、写入和执行的权限。

u  -rwxr--r--: 文件全部者具备读、写与执行的权限,用户组里用户及其余用户则具备读取的权限

u  -rw-rw-r-x:文件全部者与同组用户对文件具备读写的权限,而其余用户仅具备读取和执行的权限。

u  drwx--x—x: 目录全部者具备读写与进入目录的权限,其余用户近能进入该目录,却没法读取任何数据。

u  drwx------: 除了目录全部者具备完整的权限以外,其余用户对该目录彻底没有任何权限。

1.5.2 举例以下:

每一个用户都拥有本身的专属目录,一般放置在/home目录下

 

 

这些专属目录的默认权限为【rwx------】表示目录全部者自己具备全部权限,其余用户没法进入该目录,以下图所示:

 

 

在当前用户状态下建立的文件或目录,自动成为该用户的所属

 

 

1.5.2 更改文件的全部者和属组

用到的命令:chown   chgrp  若是对目录操做,-R

[root@panda ~]# ll /home/wang.txt

-rw-r--r--. 1 root root 0 Apr  7 21:16 /home/wang.txt

[root@panda ~]# chown :tom /home/wang.txt

[root@panda ~]# ll /home/wang.txt

-rw-r--r--. 1 root tom 0 Apr  7 21:16 /home/wang.txt

[root@panda ~]# ll /home/*.txt

-rw-r--r--. 1 root tom  0 Apr  7 21:16 /home/wang.txt

-rw-r--r--. 1 tom  root 0 Apr  7 21:15 /home/yang.txt

[root@panda ~]# touch /home/li.txt

[root@panda ~]# chown jerry:jerry /home/li.txt

[root@panda ~]# ll /home/*.txt

-rw-r--r--. 1 jerry jerry 0 Apr  7 21:16 /home/li.txt

-rw-r--r--. 1 root  tom   0 Apr  7 21:16 /home/wang.txt

-rw-r--r--. 1 tom   root  0 Apr  7 21:15 /home/yang.txt

[root@panda ~]# chown .tom /home/li.txt

[root@panda ~]# ll /home/*.txt

-rw-r--r--. 1 jerry tom  0 Apr  7 21:16 /home/li.txt

-rw-r--r--. 1 root  tom  0 Apr  7 21:16 /home/wang.txt

-rw-r--r--. 1 tom   root 0 Apr  7 21:15 /home/yang.txt

[root@panda ~]# chgrp tom /home/yang.txt

[root@panda ~]# mkdir /home/dir1

[root@panda ~]# touch /home/dir1/test-{01..10}

[root@panda ~]# ls /home/dir1

test-01  test-02  test-03  test-04  test-05  test-06  test-07  test-08  test-09  test-10

[root@panda ~]# chown -R tom /home/dir1d

chown: cannot access ‘/home/dir1d’: No such file or directory

[root@panda ~]# chown -R tom /home/dir1

[root@panda ~]# ll /home/dir1

total 0

-rw-r--r--. 1 tom root 0 Apr  7 21:20 test-01

-rw-r--r--. 1 tom root 0 Apr  7 21:20 test-02

-rw-r--r--. 1 tom root 0 Apr  7 21:20 test-03

-rw-r--r--. 1 tom root 0 Apr  7 21:20 test-04

-rw-r--r--. 1 tom root 0 Apr  7 21:20 test-05

-rw-r--r--. 1 tom root 0 Apr  7 21:20 test-06

-rw-r--r--. 1 tom root 0 Apr  7 21:20 test-07

-rw-r--r--. 1 tom root 0 Apr  7 21:20 test-08

-rw-r--r--. 1 tom root 0 Apr  7 21:20 test-09

-rw-r--r--. 1 tom root 0 Apr  7 21:20 test-10

 

1.6 修改权限

修改权限的相关命令:chmod

做用:修改文件、目录权限

用法:(中间的+、-、=表示添加仍是删除该用户的对应权限)

       u-w

user

拥有者

g+x

group

o=r

other

其余人

a+x

all

全部人

1.6.1 对文件权限的修改

删除文件的写权限

[root@panda mnt]# chmod u-w a.txt

[root@panda mnt]# ll

total 0

-r--r--r-- 1 root root 0 Dec  5 20:37 a.txt

让全部者所在的组用户拥有执行的权限

[root@panda san]# ll

total 0

drwxr-xr-x 2 san admin 6 Dec  5 21:04 aa

-rw-r--r-- 1 san admin 0 Dec  5 21:04 b.txt

[root@panda san]# chmod g+x b.txt

[root@panda san]# ll

total 0

drwxr-xr-x 2 san admin 6 Dec  5 21:04 aa

-rw-r-xr-- 1 san admin 0 Dec  5 21:04 b.txt

删除其它用户对文件的读权限

[root@panda san]# chmod o-r b.txt

[root@panda san]# ll

total 0

drwxr-xr-x 2 san admin 6 Dec  5 21:04 aa

-rw-r-x--- 1 san admin 0 Dec  5 21:04 b.txt

[root@panda san]# chmod o+rwx b.txt

[root@panda san]# ll

total 0

drwxr-xr-x 2 san admin 6 Dec  5 21:04 aa

-rw-r-xrwx 1 san admin 0 Dec  5 21:04 b.txt

======================================================

chmod u+x file1 //属主增长执行
chmod a=rwx file1 //全部人等于读写执行
chmod a=- file1 //全部人没有权限
chmod ug=rw,o=r file1 //属主属组等于读写,其余人只读
 ll file1 //以长模式方式查看文件权限
=======================================================

 

1.6.2 对目录的权限修改

 

 

1.6.3 一次修改多个权限

 

 

1.7 修改文件的拥有者及所属组

用到的命令:chown

做用:修改文件拥有者和所属组

语法:

q  chown user:group 对象

q  chown user 对象

q  chown :group 对象

q  -R :递归(目录下的全部内容所有更改,不然只修改目录)

举例以下:

修改文件的全部者和所属组

 

 

修改文件的全部者

 

 

修改文件的所属组

 

 

给目录及其里面的文件赋权

在目录下新建两个文件

 

 

扩展:

若是一个文件只有读的权限,拥有者是否能够写入文件内容呢?

[root@panda mnt]# ll

total 0

-rwxr--r-- 1 miao root   0 Dec  5 20:37 a.txt

dr-xr-xr-x 2 san  admin 30 Dec  5 21:22 bb

[root@panda mnt]# chmod u-wx a.txt

[root@panda mnt]# ll a.txt

-r--r--r-- 1 miao root 0 Dec  5 20:37 a.txt

[root@panda mnt]# su - miao

Last login: Mon Dec  5 20:13:44 CST 2016 on pts/0

[miao@panda ~]$ cd /mnt

[miao@panda mnt]$ ls

a.txt  bb

[miao@panda mnt]$ ll

total 0

-r--r--r-- 1 miao root   0 Dec  5 20:37 a.txt

dr-xr-xr-x 2 san  admin 30 Dec  5 21:22 bb

[miao@panda mnt]$ vim a.txt

[miao@panda mnt]$ cat a.txt

nihao

[miao@panda mnt]$ exit

logout

1.8 使用数字表示权限

rwx

r--

-w-

--x

 

100

010

001

二进制

4

2

1

十进制

组合

rw-

4+2=6

r-x

4+1=5

rw-r--r--

rw-=6     r--=4    r--=4    rw-r—r--=644

举例以下:

建一个目录TEST,要求以下:

一、root用户和test用户能够读写执行

二、其余用户没有任何权限

1.9 综合案例

创建两个用户组group1和group2,再创建三个用户 user一、user二、user3,而且把前两个用户分配给组group1,最后一个用户分给组group2

实验1:用户1和2都属一个组,在1下建立一个文件,2能够访问查看吗?写入这个文件内容,绝对路径看能查看到里面内容吗?

实验2:若是不能访问,有几种方法设置可让2访问?

方法:修改用户的目录组权限,让它容许同组用户访问,其它用户不能够

[root@panda home]# su - user3

[user3@panda ~]$ ls /home/user1

ls: cannot open directory /home/user1: Permission denied

实验3:如何让用户3能够访问用户1的文件,可是不能修改用户3的主组

第一种:在user1目录的其它权限位置给一个权限

第二种状况:本身下来测试一下附加组

=======================================

一、权限对文件的影响

[root@panda home]# ll dir1/test-01

-rwxrwxrwx. 1 root root 0 Apr  7 21:20 dir1/test-01

[root@panda home]# ll -d dir1

drwxr-xr-x. 2 root root 4096 Apr  7 21:20 dir1

[root@panda home]# su - tom

Last login: Fri Apr  7 21:31:29 CST 2017 on pts/0

[tom@panda ~]$ exit

logout

[root@panda home]# su - tom

Last login: Fri Apr  7 21:51:05 CST 2017 on pts/0

[tom@panda ~]$ cat /home/dir1/test-01

[tom@panda ~]$ rm -f /home/dir1/test-01

rm: cannot remove ‘/home/dir1/test-01’: Permission denied

 

二、权限对目录的影响

[root@panda home]# ll -d dir1/

drwxr-xr-x. 2 root root 4096 Apr  7 21:20 dir1/

[root@panda home]# chmod 777 dir1/

[root@panda home]# ll -d dir1/

drwxrwxrwx. 2 root root 4096 Apr  7 21:20 dir1/

[root@panda home]# chmod 000 dir1/test-01

[root@panda home]# ll dir1/test-01

----------. 1 root root 0 Apr  7 21:20 dir1/test-01

[root@panda home]# su - tom

Last login: Fri Apr  7 21:51:19 CST 2017 on pts/0

[tom@panda ~]$ cat /home/dir1/test-01

cat: /home/dir1/test-01: Permission denied

[tom@panda ~]$ rm -f /home/dir1/test-01

[tom@panda ~]$ touch /home/dir1/test-001

 

 

1.10 补码

首先看一个例子:

 

 

为何咱们建立的文件的权限是644呢?

咱们建立文件的默认权限是怎么来的?

如何改变这个默认权限呢?

       umask命令容许你设定文件建立时的缺省模式,对应每一类用户(文件属主、同组用户、其余用户)存在一个相应的umask值中的数字

       对于文件来讲,这一数字的最大值分别是6;系统不容许你在建立一个文本文件时就赋予它执行权限,必须在建立后用chmod命令增长这一权限(为了安全考虑)

4 2 

       对于目录来讲,则容许设置执行权限,这样针对目录来讲,umask中各个数字最大能够到7

umask设置了用户建立文件的默认权限,它与chmod的效果恰好相反.;umask设置的是权限“补码”,而chmod设置的是文件权限码。咱们只要记住umask是从权限中拿走相应的位便可 。如:umask值为022,则默认目录权限为755,默认文件权限为644

该命令的通常形式为:umask nnn 其中nnn为umask值000 – 777

umask设置了用户建立文件的默认权限,它与chmod的效果恰好相反.;umask设置的是权限“补码”,而chmod设置的是文件权限码。咱们只要记住umask是从权限中拿走相应的位便可 。如:umask值为022,则默认目录权限为755,默认文件权限为644

       咱们通常在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。

 

 

计算方法:

文件默认权限=666-umask值   666-022=644

目录默认权限=777-umask 值  777-022=755

Umask表示的是要减掉的权限

永久生效,编辑用户的配置文件vim .bash_profile

 

 

第2章 特殊权限

       其实文件与目录设置不止这些,还有所谓的特殊权限。因为特殊权限会拥有一些“特权”.

于是用户若无特殊需求,不该该启用这些权限,避免安全方面出现严重漏洞,形成入侵,甚至摧毁系统!!!
特殊权限:

q  SUID(set uid设置用户ID):限定:只能设置在二进制可执行程序上面。对目录设置无效

          功能:程序运行时的权限从执行者变动成程序全部者

q  SGID:限定:既能够给二进制可执行程序设置,也能够对目录设置

          功能:在设置了SGID权限的目录下创建文件时,新建立的文件的所属组会          继承上级目录的所属组

q  Stickybit:粘滞位权限是针对目录的,对文件无效,也叫防删除位

q  s对应的数值为

SUID

SGID

Stickybit

u=四、u+s

g=二、g+s

o=一、o+t

SUID属性通常用在可执行文件上,当用户执行该文件时,会临时拥有该执行文件的全部者权限。使用”ls -l” 或者”ll” 命令浏览文件时,若是可执行文件全部者权限的第三位是一个小写的”s”,就代表该执行文件拥有SUID属性。好比/usr/bin/passwd文件

 

 

注意:

       一、若是一个文件被设置了SUID或SGID位,会分别表如今全部者或同组用户的权限的可执行位上;

       二、linux系统规定,若是本来该位上有x,则这些属性显示为小写字母(有效),不然显示大写字母(无效)

       三、因为SUID和SGID是在执行程序(程序的可执行位被设置)时起做用,而可执行位只对普通文件和目录文件有意义,因此设置其余种类文件的SUID和SGID位是没有多大意义的

2.1.1  SUID举例以下

       一、咱们能够看到/etc/shadow文件是没有权限的。除了root用户能够操做,其它用户都不能够。可是由于passwd命令具备s特殊权限,因此咱们切换到普通用户后,修改普通用户密码,它是能够把信息写入到这个密码文件里面的

一、咱们能够看到/etc/shadow文件是没有权限的。除了root用户能够操做,其它用户都不能够。可是由于passwd命令具备s特殊权限,因此咱们切换到普通用户后,修改普通用户密码,它是能够把信息写入到这个密码文件里面的

 

 

 

 

二、看下面的例子,能够看到cat命令是没有s特殊权限的,咱们在普通用户下看密码文件,提示没有权限,若是咱们在root用户下,确是能够执行的,给cat命令添加s权限,咱们能够看到它是能够看到这个密码文件内容的

 

 

其实咱们是借用root用户的身份执行的         

若是咱们删除s权限后

 

 

 

2.1.2  SGID举例以下

       s(SGID,Set GID):设置在文件上面,其效果与SUID相同,只不过将文件全部者换成用户组,该文件就能够任意存取整个用户组所能使用的系统资源。

强调: SUID通常用在文件上(脚本) SGID用在目录上比较多

[root@panda ~]# mkdir /tencent

[root@panda ~]# groupadd xuegod

[root@panda ~]# useradd -G xuegod xiaobai

[root@panda ~]# useradd -G xuegod dabai

[root@panda ~]#

[root@panda ~]# chown :xuegod /tencent/

[root@panda ~]# ll -d /tencent/

drwxr-xr-x. 2 root xuegod 6 Oct 11 19:43 /tencent/

[root@panda ~]# chmod 775 /tencent/

[root@panda ~]# chmod g+s /tencent/

[root@panda ~]# ll -d /tencent/

drwxrwsr-x. 2 root xuegod 6 Oct 11 19:43 /tencent/

切换到xiaobai用户下面:

[root@panda ~]# su - xiaobai

[xiaobai@panda ~]$ cd /tencent/

[xiaobai@panda tencent]$ touch aa

[xiaobai@panda tencent]$ touch bb

[xiaobai@panda tencent]$ ll

total 0

-rw-rw-r--. 1 xiaobai xuegod 0 Oct 11 19:45 aa

-rw-rw-r--. 1 xiaobai xuegod 0 Oct 11 19:45 bb

[xiaobai@panda tencent]$ exit

logout

退出

切换到dabai用户下面:

[root@panda ~]# su - dabai

[dabai@panda ~]$ cd /tencent/

[dabai@panda tencent]$ touch cc

[dabai@panda tencent]$ touch dd

[dabai@panda tencent]$ ll

total 0

-rw-rw-r--. 1 xiaobai xuegod 0 Oct 11 19:45 aa

-rw-rw-r--. 1 xiaobai xuegod 0 Oct 11 19:45 bb

-rw-rw-r--. 1 dabai   xuegod 0 Oct 11 19:46 cc

-rw-rw-r--. 1 dabai   xuegod 0 Oct 11 19:46 dd

       经过上面你们能够看到尽管用户变了,可是它的所属组是没有变的,所以别人在此目录中建立的任何目录和文件,所属组都是此目录的所属组,可是属主仍是本身,可是任何人在此目录建立的文件,均可以被删除

2.1.3  粘滞位举例以下:

SBIT(Sticky):只针对目录有效,对文件无效,做用是防止别人删除掉对方的资料,防止用户本身的文件被别的用户误删除

[root@panda ~]# mkdir /tencent

[root@panda ~]# chmod 1777 /tencent/

[root@panda ~]# su - test

Last login: Tue Oct 11 20:12:57 CST 2016 on pts/2

[test@panda ~]$ cd /tencent/

[test@panda tencent]$ touch aa

[test@panda tencent]$ touch bb

[test@panda tencent]$ exit

logout

切换用户

[root@panda ~]# su - xiaobai

Last login: Tue Oct 11 20:11:14 CST 2016 on pts/2

[xiaobai@panda ~]$ cd /tencent/

[xiaobai@panda tencent]$ touch cc

[xiaobai@panda tencent]$ touch dd

[xiaobai@panda tencent]$ ll

total 0

-rw-rw-r--. 1 test    test    0 Oct 11 20:14 aa

-rw-rw-r--. 1 test    test    0 Oct 11 20:14 bb

-rw-rw-r--. 1 xiaobai xiaobai 0 Oct 11 20:14 cc

-rw-rw-r--. 1 xiaobai xiaobai 0 Oct 11 20:14 dd

[xiaobai@panda tencent]$ rm -f aa

rm: cannot remove ‘aa’: Operation not permitted    --提示没有权限

[xiaobai@panda tencent]$ exit

logout

这就是sticky位的功能

 

2.1.4 扩展:ACL

       ACL: Access Control List (ACL)访问控制列表

       它是一种权限分配以外的广泛范式。例如,默认状况下你须要确认3个权限组:UGO。而使用ACL,你能够增长权限给其余用户或组别,而不单只是简单的"other"或者是拥有者不存在的组别。能够容许指定的用户A、B、C拥有写权限而再也不是让他们整个组拥有写权限

ACL使用状况:

[root@panda mnt]# ll a.txt

-rw-r--r-- 1 miao miao 0 Dec  5 22:36 a.txt

若是我有一个用户san,想让它对文件a.txt有读写的权限,而其它用户不能够对这个文件有权限操做。有以几种状况:

一、  给other权限,存在的问题就是让全部用户都对这个文件有读写,达不到咱们的目的

二、  把SAN用户加入一个组,存在的问题就是:若是miao组里还有其它重要的文件,那么这个时候san用户也能够来这里随意访问,有安全隐患

三、  经过sudo。在普通用户状态下:经过sudo命令。存在的问题就是:你须要配置sudo文件,这个配置是有严格的格式要求。比较麻烦,也不灵活

经过上面咱们能够看:在LINUX中。由于对其它其它用户的权限定义过于宽泛,因此对用户权限细粒度的划分使用就比较麻烦,那么ACL就是用来解决这个问题的

  • 查看是否安装:

[root@panda ~]# rpm -qf `which getfacl`

acl-2.2.51-12.el7.x86_64

[root@panda ~]# rpm -qf `which setfacl`

acl-2.2.51-12.el7.x86_64

  • ACL参数解释

Ÿ   ACL_USER_OBJ: 至关于Linux里file_owner的权限

Ÿ   ACL_USER: 定义了额外的用户能够对此文件拥有的权限

Ÿ   ACL_GROUP_OBJ: 至关于Linux里group的权限      

Ÿ   ACL_GROUP: 定义了额外的组能够对此文件拥有的权限

Ÿ   ACL_MASK: 定义了ACL_USER, ACL_GROUP_OBJ和ACL_GROUP的最大权限

Ÿ   ACL_OTHER: 至关于Linux里other的权限

举例以下:

  • 查看ACL权限

[root@panda mnt]# getfacl a.txt

# file: a.txt

# owner: miao

# group: miao

user::rw-

group::r--

other::r--

[root@panda mnt]# getfacl --omit-header a.txt

user::rw-

group::r--

other::r—

  • 添加ACL权限

[root@panda mnt]# setfacl -m u:san:rwx a.txt

[root@panda mnt]# getfacl --omit-header a.txt

user::rw-              --定义了ACL_USER_OBJ,说明文件拥有者有读写权限

user:san:rw-                  --定义了ACL_USER,说明用户SAN也拥有了对此文件的读执行权限   

group::r--             --定义了ACL_GROUP_OBJ,说明文件组拥有了读写权限

mask::rw-                     --定义了ACL_MASK的权限为读写

other::r—                          --定义了ACL+OTHER,说明其它用户对此文件没有任何操做权限

  • 删除ACL权限

[root@panda mnt]# setfacl -b a.txt

[root@panda mnt]# ll a.txt

-rw-r--r-- 1 miao miao 0 Dec  5 22:36 a.txt

[root@panda mnt]# getfacl a.txt

# file: a.txt

# owner: miao

# group: miao

user::rw-

group::r--

other::r—

u  若是文件系统不支持ACL的话,你可能要从新挂载挂载一下你的文件系统

用的命令:

mount -o remount, acl [mount point]

u  ACL中的MASK参数

若是文件有ACL_MASK值,那么文件的组权限中显示的权限就是mask的值,而不是组的权限,同时在MASK中,mask规定的是最大权限,也就是说假如你添加了一个普通用户的ACL权限是rw,可是mask的值确是r。那么这个用户对这个文件也只有r权限。

[root@panda mnt]# ll a.txt

-rw-rwxr-- 1 miao miao 0 Dec  5 22:36 a.txt

[root@panda mnt]# getfacl --omit-header a.txt

user::rw-

user:san:rwx-

group::r--

mask::rwx

other::r—

MASK的做用:它是用来临时的压制一些用户或者组的权限。尽可能保证其它人权限设置为空

setfact -m  -x  -b  -d

ACL权限继承:

第一种写法:

[root@panda home]# setfacl -m u:jerry:rwx dir2/

[root@panda home]# setfacl -m d:jerry:rwx dir2/

第二种写法:

[root@panda home]# setfacl -m d:u:tom:r dir-33/

第3章: 实战:建立一个让root都没法删除的文件

       你们有时候发现用root权限都不能修改某个文件,这种状况大部分缘由是由于用chattr命令锁定该文件了。

       文件系统属性权限:chattr(防止误操做包括root用户)

       chattr命令的做用很大,经过chattr命令修改文件属性可以提升系统的安全性,可是它并不适合全部的目录。chattr命令不能保护/、/dev、/tmp、/var目录。

       lsattr命令是显示chattr命令设置的文件属性

Linux文件系统扩展属性:chattr  lsattr

chattr [+ - =] 选项 对象

+增长权限   -:删除权限     =:等于某个权限

q  +a 

       对文件来讲:只能在文件中追加数据,但现有数据不能删除也不能进行修改,用追加方式,vi没法判断你作的操做是属于哪一种,因此不能用vi来编辑文件

       对目录来讲:只容许在目录中创建和修改文件,可是不容许删除

q  +i 

       对文件来讲:不能修改,删除文件,也不能添加和修改其内的数据,但能够查看文件里面的内容

       对目录来讲:只能修改目录下的文件数据,但不能创建和删除文件

lsattr  可选参数 -a

举例:

对文件来讲:

建立一个新文件,并写入数据

[root@xuegod72 mnt]# echo 'xuegod-linux' > b.txt

[root@xuegod72 mnt]# cat b.txt

xuegod-linux

使用chattr添加a属性,让这个文件只能增长内容,不能修改内容

[root@xuegod72 mnt]# chattr +a b.txt

[root@xuegod72 mnt]# ll b.txt

-----w----+ 1 root root 13 Oct 12 11:15 b.txt

[root@xuegod72 mnt]# echo 123456 >> b.txt

上面能够看到是能够增长内容的

[root@xuegod72 mnt]# echo 78910 > b.txt

-bash: b.txt: Operation not permitted    没法修改内容

使用chattr添加i属性,让文件禁止任何人修改

[root@xuegod72 mnt]# chattr +i b.txt

[root@xuegod72 mnt]# echo 12345 >> b.txt

-bash: b.txt: Permission denied    没法添加内容

查看文件隐藏属性

[root@xuegod72 mnt]# lsattr -a b.txt

----ia---------- b.txt

删除添加的文件隐藏属性

[root@xuegod72 mnt]# chattr -i b.txt

[root@xuegod72 mnt]# chattr -a b.txt

[root@xuegod72 mnt]# lsattr b.txt

---------------- b.txt

实际应用:

[root@ xuegod72 ~]# chattr +a /etc/passwd

[root@l xuegod72 ~]# chattr +a /etc/shadow

其它还能针对日志文件进行设置

相关文章
相关标签/搜索