linux系统调用权限检查,Linux系统中文件权限的管理

1.文件权限存在的意义

系统最底层安全设定的方法之一

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

2.文件权限的查看

(1)ls  -l  file 或者  ll      file

78cffeff2d5308f7da2f1c280a0ec14f.png

(2)ls  -ld  dir 或者 ll  -d  dir

3f509b74a2b0efbf9a3e03ed7bf1e9aa.png

3.文件权限的取读

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

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

[1]

文件类型

-

d

l

s

b

c

空文件 ,或者文本文件

目录

软连接

socket 套接字

block 块设备

字符设备

[2]

文件的权限

re-|rw-|r--

1   2   3

1

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

2

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

3

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

[3]

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

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

[4]

文件所有人

[5]

文件所有组

[6]

对文件:文件大小

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

[7]

文件的内容被修改的时间

[8]

文件的名称

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

chown|chgrp

chown       username     file|dir (更改文件的所属人)

如下图所示,file文件初始的所属人为root,通过上述命令改为了student

8944796d3cb46f3cbf20d4292564610d.png

chown   -R  user.group   dir  (更改目录的所属人和所属组)

操作和效果如下图 westos目录的所属人和所属组都被改为student

90dc6a6a9b1059d338f1c7124d06a342.png

chown       user.group   file|dir(更改文件的所属人或所属组)

操作和效果如下图 文件file的所属人和所属组都被改为student

90bda2708a5d501fb39a805e01746fa7.png

chgrp        group      file (更改文件的所属组)

操作和效果如下图 文件的所属组被改为root

89b168118329674f2139a599a3b5b641.png

chgrp   -R    group      dir (更改目录的所属组)

操作和效果如下图 目录westos的所属组被改为root

a8f5207296c26ea83020b534aac72a76.png

5.如何改变文件的权限

1.对权限的理解

r

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

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

w

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

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

x

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

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

2.更改方式

chmod  file|dir

命令

解释

演示效果

chmod  u+x   file1

给u加上x的权限

93de44870f66ad6dc3b637edb87af909.png

chmod g-r file2

给g减去r的权限

5097d6858f82602b8dcde0a99fd47aed.png

chmod  ug-r     file3

给u g 减去r的权限

6d193a1443f921722cf92cc5c8dfd1b0.png

chmod  u-r,g+x  file4

给u减去r的,给g加上x的权限

7aed1fd5bb6c27ca8cc8049c5b4196df.png

chmod  -r  file5

给所有人减去r 的权限

fbb4b24673ff5d8755e5ea6fe3cf4865.png

chmod  o=r-x  file6

给o赋予r  x加不上去  而没有w的权限

9c3d564d888f1e6e97e305dcfdb7beab.png

rwx

r=4

w=2

x=1

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

除了上述命令,还可以通过数字的这种方式改动权限

例如:chmod 777 file1

014183534a0311001fd26d41c186c6ce.png

6.umask

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

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

永久更改umask

vim /etc/profile    ##系统配置文件

20d164706bf3b6b49a87a686854564f3.png

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

vim /etc/bashrc      ##shall的配置文件

      8ce7477e85d46c5801978e4ee6a46086.png

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

可以更改图中的022数字让系统的默认权限改变

7.特殊权限

<1>.sticky     粘制位

作用:

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

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

设定方式:    chmod  o+t  dir 或者 chmod  1xxx  dir

我们可以先建立根下的目录ww即:/ww  然后再改变 o g u 的权限都为 rwx ,切换成student用户 在/ww下建立文件file ,然后切换成tom用户 可以发现tom用户能成功删除student在/ww下建立的file文件。 如图

ae4b28577c380af9ec6827c66552089d.png

然后在root用户下用命令:chmod o+t /ww 给/ww目录加上sticky权限  再切换成student用户在/ww下建立file文件,然后切换成tom用户去删除它,发现删除失败,如果是student用户删除的话就会删除成功,如下图。这就说明当一个目录上有sticky权限时,这个目录中的文件只有文件的所有者可以删除。

b55f2a104c44bdaa962dbd2f74ea4eb9.png

<2>.sgid         强制位

作用:

(1)  对文件:  只针对于二进制可执行文件

当文件上有sgid时任何人执行此文件产生的进程都属于文件的组

(2) 对目录: 当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有设定方式

设定方式:   chmod g+s  file|dir 或者chmod 2xxx file|dir

(1)对文件:首先我们先将/bin/watch文件的所有组改为student,然后切换成tom用户,执行一个命令:watch -n 1 date

此命令与watch有关,再用一个监控命令 ps  ax  -o  comm,user,group | grep  watch (与最后一个监控命令在一张图,有利于对比)然后退出。如图

cbd033b5068f6fb85b3baf36618626a0.png

然后我们用命令 chmod   g+s  /bin/watch 给/bin/watch文件加上sgid权限。切换成tom,去执行 watch -n 1 date命令。如图

6b6229c82ec9cee19c5ba9dffca8c8c8.png

最后我们在用一个监控命令 ps  ax  -o  comm,user,group | grep  watch 监控如图

a9f4754fd187da06e38a8d0139715d94.png

由监控的结果可以看出来,在没有给watch文件加sgid权限时,tom执行watch这个动作时的所有人和所有组都是tom,而在watch文件上加上sgid后,我们再用tom执行watch时,它的组变为student,与watch的组一致。这就可以说明当文件上有sgid时任何人执行此文件产生的进程都属于文件的组

(2)对目录:先建立一个/hi目录,将其所有组改为student,并设置权限777.再切换成tom用户,在/hi目录下建立file1文件。然后给目录/hi加上sgid权限。再切换成tom用户,在/hi目录下建立文件file2,如下图所示,我们可以发现没有加sgid权限时建立的file1文件的所有组为tom,而在/hi目录加sgid权限后所建立的文件file2的所有组为student,与/hi目录的所有组一致。这样就可以说明当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有设定方式

3cf077a3870cedc574921892eba4991b.png

<3>. suid  冒险位

只针对二进制可执行文件

当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人设定方式

设定方   chmod u+s file  或者   chmod 4xxx file

我们都知道root用户是超级用户,拥有很大的权力。比如可以删除/etc下的所有文件,而普通用户就不行。我们先将/bin/rm文件的所有人改为tom,然后给/bin/rm加上suid权限,以超级用户的身份去删除/etc,我们会发现删除不了,没有权限。那是因为/bin/rm文件上有suid权限,所以当我们以超级用户的身份去执行rm这个命令时,其实是以/bin/rm文件所有人的身份,即:tom的身份去执行的,tom是普通用户,所以删除不了。也就解释了“ 当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人设定方式”这句话。操作如下图

ddc2aa139eae2ad6249ce1f79d499ce7.png

219fe594f856cd3630b4fca03cacfee2.png

8.adl权限列表

<1>.作用

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

<2>.adl列表查看

  62aff760624e1ee91ae97aa30239f277.png

上图中的加号说明adl权限开启

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

b8b30156a16b7b7dc5390eac10408dcb.png

file:file

文件名称

owener:root

文件拥有着

user::rw-

文件拥有人的权限

user::kiosk:rwx

指定用户的权限

group::r--

文件拥有组的权限

mask::rwx

赋予用户的最大权力阈值

other::r--

其他人的权限

group:root

文件拥有组

<3>.adl列表管理

命令

解释

操作效果

setfacl -m u:username:rwx file

设定username对file拥有rwx的权限

eaa0cea9bb97b07e834bcd1d50817fb8.png

setfacl -m g:group:rwx file

设定group组成员对file拥有rwx权限

bc4bd7f46492242c0f3c31999c3859ed.png

setfacl -x u:username file

从acl列表中删除username

b0cf3135cebe3d69101740eb67c7edc1.png

setfacl -b file

关闭file上的adl列表

<4>.mask值

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

当用chmod减小开启acl的文件权限时

mask的值会发生改变

chmod  g-w westos

如果要恢复mask的值

setfacl -m m:rw westos

<5>.adl的默认权限设定

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值