Linux文件系统权限管理

1.文件的基本权限

(1)权限的作用

通过对文件设定权限可以达到以下三种访问限制权限:

  • 只允许用户自己访问;
  • 允许一个预先指定的用户组中的用户访问;
  • 允许系统中的任何用户访问。

(2)查看权限

 

(3)文件类型

此处强调一下,Linux中文件类型有如下:

p表示命名管道文件

d表示目录文件

l表示符号连接文件

-表示普通文件

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

c表示字符设备文件,例: 虚拟控制台 或tty0

b表示块设备文件   例: sda, cdrom

(4) 文件权限

权限说明:

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

权限

对文件的影响

对目录的影响

r(读取)

可以读取文件的内容

可以列出目录的内容(文件名) ls

w(写入)

可以更改文件的内容

可以创建或删除目录中的任意文件

touch mkdir  rm  mv cp

x(执行)

可以作为命令执行文件

可以进入目录(而对目录中文件内容的操作取决于目录中文件的权限)

cd 

(5)文件拥有者

UGO:所有者--用户组--其它用户

  • 所有者: 就是创建文件的用户,这个用户拥有对它所创建的文件的一切权限,所有者可以允许其所在的用户组可以访问所有者的文件。
  • 用户组: 用户组是具有相同特征用户的逻辑集合,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有10个用户的话,就需要授权10次,显然这种方法不太合理;另一种方法是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组。
  • 其它用户:系统内的其他所有者用户就是other用户类
  • 示例1:
  • [rwx------]表示目录所有者本身拥有的权限,其它用户是无法进入的。 root可以。
  •  
  • 示例2:
  • 你以什么用户身份登录,那么你创建的文件或目录,自动成为该文件的所属主和组

(6)更改文件的属主和属组

改变文件的所属关系用到命令:

  • chown:可以用来改变文件(或目录)的属主
  • chgrp:可以用来改变文件(或目录)的默认属组
  • 如果你要对目录进行操作,加参数  -R

chown

语法:

  • chown user:group filename                   比如:chown hr:san a.txt  把文件的属主和属组改为hr,san
  • chown user filename                              比如:chown san a.txt  把文件的属主改为san用户
  • chown :group filename                          比如: chown :miao a.txt   把文件的属组改为miao这个组
  • chgrp hr filename                                   比如: chgrp hr f.txt  
  • -R :递归(目录下的所有内容都更改,否则只修改目录)

一个文件只有读的权限,文件所有者是否可以写这个文件?

写成功

结论:文件所有者一定可以写文件。

比如就像root可以对shadow强制写。 因shadow的拥有者是root

(7)修改文件的权限

1)使用字符设定

修改权限用的命令:chmod

作用:修改文件,目录的权限

语法:chmod [对谁操作] [操作符] [赋于什么权限] 文件名

对谁操作:

  • u----> 用户user,表示文件或目录的所有者
  • g---->用户组group,表示文件或目录所属的用户组
  • o---->其它用户others
  • a---->所有用户all

操作符:

  • + :添加权限  ;
  •  - : 减少权限  ;
  • = :直接给定一个权限

权限:r w x

例如下在的组合:

u-w

user

拥有者

g+x

group

o=r

other

其他人

a+x

all

所有人

 

 

 

 

 

2) 使用0-7的数字表示权限法

权限

二进制值

八进制值

描述

---

000

0

没有任何权限

--x

001

1

只有执行权限

-w-

010

2

只有写入权限

-wx

011

3

有写入和执行权限

r--

100

4

只有读取权限

r-x

101

5

有读取和执行权限

rw-

110

6

有读取和写入权限

rwx

111

7

有全部权限

 

 

 

 

 

 

 

 

 

语法:

  • chmod 755 文件或文件夹名字
  • 例如:chmod a=rwx b.txt  等于 chmod 777 b.txt

3)文件默认权限umask

为什么我们创建的文件的权限是644呢?我们创建文件的默认权限是怎么来的?

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

  • 文件默认权限=666 
  • 目录默认权限=777

我们一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。

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

注: UID大于199 且用户的组名和用户名一样,那么 umask值为002,否则为022.

注: -gt 在shell中表示大于; id -g 显示用户组ID ,id -gn显示组名。

临时生效:umask 权限码

权限科学的计算方法:

1、将默认权限(目录777,文件666)和umask值都转换为2进制

2、对umask取反

3、将默认权限和umask取反后的值做与运算

4、将得到的二进制值再转换8进制,即为权限,

例1: umask 为022

6  6  6                        umask   0  2   2

110 110 110               000 010  010          # 转成二进制 

                                   111 101  101          # umask取反的值

110 110 110               

 与                                                             #第二步,默认权限和umask取反后的值做与运算 

111 101 101   

110 100 100

6   4   4     #转成8进制数

例2: umask 为033   结果为: 644

6  6  6                        umask   0  3   3

110 110 110               000 011  011                 # 转成二进制

                                  111 100  100                 # umask取反的值

110 110 110   

 与                                                                   #默认权限和umask取反后的值做与运算

 111 100 100                                                     # umask取反的值

110 100 100

6   4   4    #转成8进制

2.文件的特殊权限

(1) 文件的特殊权限:suid sgid sticky

  • 1、SUID(set uid设置用户ID):限定:只能设置在二进制可执行程序上面。对目录设置无效
  •                                                       功能:程序运行时的权限从执行者变更成程序所有者的权限
  • 2、SGID:限定:既可以给二进制可执行程序设置,也可以对目录设置
  •                    功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会,继承上级目录的所属组
  • 3、Stickybit:粘滞位权限是针对目录的,对文件无效,也叫防删除位

这3个特殊权限对应的数值为

SUID

SGID

Stickybit

u+s或u=4

g+s或g=2

o+t或o=1

 

 

1)SUID

例1:

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

例2:

普通用户boboyu都没有对shadow文件写入的权限, 但是mk用户使用passwd修改自己密码时,可以修改shadow文件中的内容,这是什么原因?

因为boboyu用户执行passwd命令时,权限会临时提升成root用户,所以可以修改成功。

例3:

chmod 4755 /usr/bin/less   等同于     chmod u+s /usr/bin/less

2)SGID

限定:既可以给二进制可执行程序设置,也可以给目录设置。

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

例1:

3)Stickybit

限定:只作用于目录

功能:目录下创建的文件只有root、文件创建者、目录所有者才能删除。

(2)文件扩展权限ACL

扩展ACL  :access control list

例1:设置用户boboyu对文件a.txt拥有的rwx权限 ,boboyu不属于a.txt的所属主和组,boboyu是other,怎么做?

当给boboyu用户添加了扩展权限ACL后,在它的用户下就可以看到其他用户权限后面多了一个+号,并且可以写该文件,并且该文件依然只属于root用户和root组

当切换到harry用户下,不能写该文件

例2:给目录加权限

没有d参数:

无d参数,所以test1下所有创建的文件和目录不会继承了默认的acl权限

有d参数:

在该目录下创建的文件

因为d参数,所以test下所有创建的文件和目录都继承了默认的acl权限

给目录下所有文件都加扩展权限:setfacl -R -m u:boboyu:rw-  testdirectory/        #-R一定要在-m前面,表示目录下所有文件

去掉单个权限:setfacl -x u:mk /tmp/a.txt

去掉所有acl权限:setfacl -b  /tmp/a.txt

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值