网络安全 Day11-Linux文件属性及权限知识

Linux文件属性及权限知识

  • [1. 特殊文件属性命令: chattr,lsattr(这个是产看文件属性的命令)](#1. 特殊文件属性命令: chattr,lsattr(这个是产看文件属性的命令))
  • [2. Linux 基本权限介绍](#2. Linux 基本权限介绍)
  • [3. Linux 特殊权限](#3. Linux 特殊权限)
  • [4. 普通用户提权到root权限](#4. 普通用户提权到root权限)
  • [5. 如何方式普通用户和web用户提权](#5. 如何方式普通用户和web用户提权)

1. 特殊文件属性命令: chattr,lsattr(这个是产看文件属性的命令)

  1. 作用: 给文件或目录加锁不让改不让删除

  2. 语法: chattr 选项 文件

  3. 选项属性

    1. -i 个文件加锁不能删改
    2. -a 可以追加内容
  4. 选项动作

    1. - 减少
    2. + 增加
  5. 练习: 给文件加锁-查看属性-更改文件-解锁-查看属性

    bash 复制代码
    [root@localhost ~] touch oldboy.txt
    
    [root@localhost ~] ls
    anaconda-ks.cfg  day02_world_oldboy.sql  oldboy  oldboy.txt
    
    [root@localhost ~] chattr +i oldboy.txt
    
    [root@localhost ~] lsattr oldboy.txt
    ----i----------- oldboy.txt
    
    [root@localhost ~] rm -f oldboy.txt
    rm: cannot remove 'oldboy.txt': Operation not permitted
    
    [root@localhost ~] chattr -i oldboy.txt
    
    [root@localhost ~] lsattr oldboy.txt
    ---------------- oldboy.txt
    
    [root@localhost ~] rm -f oldboy.txt
    
    [root@localhost ~] ls
    anaconda-ks.cfg  day02_world_oldboy.sql  oldboy
  6. 生产应用: 想要快捷的对上锁的文件进行改动可以考虑使用脚本

    bash 复制代码
    [root@oldboyedu ~]vim /bin/test ##增加如下内容
    chattr -i /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/sudoers
    $*
    chattr +i /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/sudoers

2. Linux 基本权限介绍

  1. 查看文件属性:ls -l

  2. 9为权限分组:前三位用户权限,中间三位组权限,最后三位其它权限

  3. 权限表示方法:字符权限和数字权限

  4. 权限对应的字符、数字和位置

    字符 作用 对应的数字权限 位置
    r 可读 4 第一位
    w 可写 2 第二位
    x 可执行 1 第三位
    - 0 任意位
  5. 如何更改权限

    1. 利用数字权限更改
      1. 语法:chmod 换算后的数字组 文件路径(-R递归修改)
      2. 计算换算后的数字:将9位权限每隔三位看成一组, 每组数字按照上边的表格换成数字相加, 最后得到一个三位数
      3. 换算例子
        1. drwxrwxr-- 774
        2. -rw-r--r-x 645
        3. drwx--xr-x 715
        4. dr-xrwx--x 571
        5. d--xr-xrwx 157
    2. 利用字符更改
      1. 动作说明: -减少,+增加
      2. 9位权限分组的表示符: 前三位u中三位g后三位o所有位a
      3. 语法: chmod 位符号+动作符号+权限符号 操作文件
      4. 例子: chmod u+rwx oldboy.txt

3. Linux 特殊权限

  • suid
    • 权限内容: suid是针对命令来讲, 当设置之后任意用户都会有对该文件执行文件所有者的操作
    • 设置方法:chmod u+s 目录/文件
    • 设置suid之后ls -l之后的状态: -rwsr-xr-x-rwSr--r--(大S表示所有者也没有执行权限)
    • 常见的例子: passwd命令就被设置了suid, ping命令也设置了suid
  • sgid: 字符是s,在中三位
  • 粘滞位: 字符是t,在后三位

4. 普通用户提权到root权限

  1. 方法一: test用户通过设置了suid的vim命令提权到root实践
    1. 必须root用户下操作chmod u+s /bin/vim
    2. 必须test用户下操作vim /etc/sudoers增加如下内容test ALL=(ALL) NOPASSWD:ALL
    3. 切到rootsudo su -
  2. 方法二
    1. 必须root用户下操作chmod u+s /bin/vim
    2. vim /etc/passwd将test用户的行的UID改为0
    3. 重新登录test就是root
  3. 方法三: 将test用户修改为属于wheel组
    1. 确定test的组id为20008

      bash 复制代码
      [test@oldboyedu ~]$ grep -w test /etc/passwd
      test:x:20008:20008::/home/test:/bin/bash
    2. 确定wheel组id为10

      bash 复制代码
      [test@oldboyedu ~]$ grep wheel /etc/group
      wheel:x:10:
    3. 修改组id为10

      bash 复制代码
      [test@oldboyedu ~]$ vim /etc/passwd
      test:x:20008:10::/home/test:/bin/bash
    4. 登录sudosudo su - ###需要test密码

5. 如何方式普通用户和web用户提权

  1. 禁止给命令设置suid
    1. 管理员不要去使用suid功能, 同时把无用的suid功能取消
    2. 应用软件PHP(/etc/php.ini配置)禁止开启读取系统文件等的函数
    3. 磁盘的挂载禁止suid
  2. 给关键文件加锁: /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/sudoers
  3. chmod 440 /etc/sudoers
  4. 看好/etc目录权限,防止文件被替换
  5. 文件权限统一644目录权限统一755, 文件和目录对应的用户和组尽量都是root(不要设置成777)
  6. web应用禁止上传特殊文件到系统目录
    1. 判断扩展名
    2. 上传后进行动静分离
  7. ssh监听内网, 禁止root远程连接, 通过vpn拨号跳板机连接
  8. 防火墙把ssh访问权限限制到内网或者办公网IP段
相关推荐
lldhsds4 分钟前
书生大模型实战营第四期-入门岛-1. Linux前置基础
linux
wowocpp27 分钟前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
山河君39 分钟前
ubuntu使用DeepSpeech进行语音识别(包含交叉编译)
linux·ubuntu·语音识别
鹏大师运维43 分钟前
【功能介绍】信创终端系统上各WPS版本的授权差异
linux·wps·授权·麒麟·国产操作系统·1024程序员节·统信uos
筱源源1 小时前
Elasticsearch-linux环境部署
linux·elasticsearch
pk_xz1234563 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强3 小时前
Linux之sed命令详解
linux·运维·服务器
Lary_Rock5 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
云飞云共享云桌面7 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq7 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端