网络安全 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段
相关推荐
木古古181 小时前
搞一个高效的c/c++开发环境,工具VIm+自研vim插件+Shell脚本
linux·编辑器·vim
茫忙然1 小时前
U 盘搭建免驱 Linux 便携系统教程
linux·服务器
一起逃去看海吧3 小时前
dify-03
java·linux·开发语言
fengyehongWorld3 小时前
Linux 根据端口进行的相关查询
linux
lihao lihao3 小时前
linux匿名管道
linux·运维·服务器
うちは止水3 小时前
weston出图调试
linux·wayland·weston
STDD3 小时前
Farming Simulator 25(模拟农场 25) Linux 专服搭建完全指南
linux·运维·javascript
好好风格3 小时前
宝塔面板 HTTPS 端口证书不生效排查记录
linux·运维·nginx
用户2367829801684 小时前
Linux pgrep 命令详解:按名称查找进程 PID 的高效方法
linux