重生之我要学渗透

第八章      Linux 文件基本属性

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。

为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

权限

针对文件 针对目录

读 r cat 查看文件内容 ls 查看目录中存在的文件名称

写 w vim 更改文件内容 杀出目录中的子文件 或新建文件

执行 x 执行可执行的程序 表示是否可以进入到目录cd

一般给目录读权限的时候 默认会给其执行权限

普通权限管理

ls 查看文件属性

ls -l ll 使用ll命令查看文件权限

-代表普通文件

d代表目录

r 4可读

w 2可写

x 1可执行

设置文件或目录权限

chmod

增加或减少文件的权限 不能改变所有者 只能改变所有者现有的权限

要给文件或目录设置权限 操作者要么是root要么是文件或目录的所有者

  1. chmod u+x 1 给一个文件的属主增加执行权限

  2. chmod g+x,o+x 2给一个文件同时增加属组其他权限

  3. chmod o-x 2 <--(文件名) 减少其他人的执行权限

  4. chmod u=rwx,g=rwx,o=rwx 2 给文件所有人赋予所有权限

  5. chmod a=rwx 1 赋予所有人所有权限

    权限设置考虑的因素
    给谁设置

    u 属主

    g 属组

    o 其他

    ugo 所有

    a 所有

    怎么设置

    +添加权限

    -减少权限

    =赋予权限

增加减少赋予什么权限

r 读

w 写

x 执行

注意

同时设置多个身份权限的时候 每个身份权限用英文逗号隔开

chmod g+x,o+x

在设置权限的时候如果有两个部分权限一样 我们可以:

chmod u=rwx,g=rwx

等价于 chmod ug=rwx

数字形式

0 不能读 不能写 不能执行

1 不能读 不能写 执行

2 不能读 写 不能执行

3 不能读 写 能执行

4 读 不能写 不能执行

5 读 不能写 执行

6 读 写 不能执行

7 读 写 执行

  1. chmod 765 3 以数字形式 赋予文件属主所有权限 属组读写 其他 读执行

chmod 731 a

7 4+2+1

3 2+1 不合理 要写必须先具备读 单独出现2 和3不合理

1

另外,生产环境下Linux不允许出现777

属主与属组设置

属主:文件的所有者 是一个账户 一个人

属组:所属的用户组 一个组

ls -l ll

chown

修改文件的属主 属组

用法1:将文件的属主修改为其他用户

chown zhangsan 1.txt 将文件1.txt属主 修改为 zhangsan

用法2:同时修改文件的属主 属组

chown zhangsan:zhangsan 2.txt

chgrp 修改文件的属组

用法:chgrp zhangsan 1.txt

在使用chgrp修改一个目录文件时,会递归将目录文件里的文件修改属组。

一般来说 chown命令 只有root用户才可以使用 普通用户没有权限修改别人的文件所有者 也没有权限将自己文件的所有者修改为别人

特殊权限

设置位s

让一般使用者 临时拥有文件的属主/属组权限

/usr/bin/passwd 在执行时 需要修改/etc/passwd /etc/shadow 等文件,这些文件除了root 其他用户都只有读权限,为了让普通用户修改密码 临时让他们拥有root权限,找个s权限 就是帮我们来完成这个任务的,s权限 只能应用在二进制的可执行文件上。

去除s权限

which 查看二进制可执行文件所在的位置

通过chmod命令修改s权限

chmod u-s/u+s /usr/bin/passwd

0755 最前面的0表示不使用任何特殊权限 用数字来代表特殊权限 可以使用 4表示s位

 那么现在我们就把s权限去了,然后再用普通用户测试一下能否成功修改密码

 我们可以看到现在已经不能修改了,

沾滞位 t

chmod

作用:只允许文件的创建者或root删除文件

chmod o+t/o-t 文件名

那么加不加t有什么区别呢

如果没有设置粘滞位,目录中的文件可以被目录的拥有者或超级用户删除,同时也可以被有写权限的其他用户删除,这可能会导致误删或恶意删除。而设置粘滞位后,目录中的文件只能被拥有相应权限的用户或超级用户删除,而其他用户无法删除这些文件。

更具体地说,当在一个具有粘滞位的目录中创建一个新文件或子目录时,该文件或子目录的拥有者是创建者本身,但是只有文件或目录的拥有者和超级用户才能删除该文件或目录。这意味着即使其他用户有写权限,他们也无法删除该文件或目录,因为他们不是该文件或目录的拥有者。

ACL访问控制权限

ACL(Access Control List)是一种访问控制列表,用于控制文件和目录的访问权限。ACL权限是指ACL中定义的授权规则,用于控制特定用户或组对文件或目录的读、写和执行权限。

在ACL权限模型中,每个文件或目录都有一个ACL,ACL包含了一组授权规则。每个授权规则包含一个用户或组,以及对该用户或组的访问权限。当一个用户或组尝试访问文件或目录时,系统会检查ACL中的授权规则,根据规则来决定是否允许访问。

ACL权限模型相比传统的基于用户和组的权限模型更加灵活,可以更精确地控制对文件和目录的访问。例如,在传统的权限模型中,一个文件只能被一个用户或组拥有,而在ACL权限模型中,一个文件可以被多个用户或组拥有,并且每个用户或组可以被授予不同的访问权限。

ACL可实现对单一用户设定访问文件的权限、
那么我们来了解一下acl的基本命令、

getfacl 查看文件的acl策略及权限 getfacl 文件名

 

setfacl 给文件针对某个用户 设置acl权限

-m 修改acl策略

-x 去掉某个用户或者某个组的权限

-b 删除所有acl策略

-R 递归 通常用于目录中

mask 定义除other以及所有者外最大的权限

给单个用户单独增加权限 setfacl -m u:user:rwx file

给单个组单独增加权限 setfacl -m g:groupname:rwx file

去掉某个用户的权限:setfacl -x u:user file

去掉某个组的权限:setfacl -x g:groupname file

删除所有acl策略:setfacl -b file

umask

表示创建文件的默认权限

文件 666

目录 777

对于root用户,系统默认的umask值是0022;对于普通用户,系统默认的umask值是0002。

root umask值

对于root用户,他的umask值是022。

当root用户创建目录时,默认的权限就是用最大权限777去掉相应位置的umask值权限,即对于所有者不必去掉任何权限,对于所属组要去掉w权限,对于其他用户也要去掉w权限,所以目录的默认权限就是755。

当root用户创建文件时,默认的权限则是用最大权限666去掉相应位置的umask值,即文件的默认权限是644。

如果将umask值设为0003,那么此时创建的目录或文件的默认权限是多少?

正确的结果应该是:目录的默认权限是774,文件的默认权限是664。

在计算默认权限时,不应用最大权限直接减去umask值,而是将umask值所对应的相应位置的权限去掉,这样才能得到正确的结果。

而普通用户的umask值为002,则对于其他用户去掉w权限

root用户创建的文件

目录文件
最大默认权限777666
umask值022

022

初始权限755644

 普通用户

目录文件
最大默认权限777

666

umask值002002
初始权限775664

 

当umask 011 创建文件默认权限应该是 655 实际运行时会变成666

666 —> rw-rw-rw-

011 —> -----x--x

相减得

666 —> rw-rw-rw-

这个特殊情况只出现于文件

修改umask值

临时修改:umask umask值 umask 044

永久修改

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值