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

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

  1. 作用: 给文件或目录加锁不让改不让删除
  2. 语法: chattr 选项 文件
  3. 选项属性
    1. -i 个文件加锁不能删改
    2. -a 可以追加内容
  4. 选项动作
    1. - 减少
    2. + 增加
  5. 练习: 给文件加锁-查看属性-更改文件-解锁-查看属性
    [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. 生产应用: 想要快捷的对上锁的文件进行改动可以考虑使用脚本
    [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
      [test@oldboyedu ~]$ grep -w test /etc/passwd
      test:x:20008:20008::/home/test:/bin/bash
      
    2. 确定wheel组id为10
      [test@oldboyedu ~]$ grep wheel /etc/group
      wheel:x:10:
      
    3. 修改组id为10
      [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段

猜你喜欢

转载自blog.csdn.net/m0_73293867/article/details/131995773