网安小白筑基篇二:计算机操作系统之Linux基础(文件目录、用户与组、vim编辑器、进程与包管理、防火墙、Shell、xshell)

本文介绍了新手入门网安前必须了解的linux基础知识。

Linux操作系统

Linux发行版本

  • Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本。前者以著名的Redhat(RHEL)为代表, 后者以Debian为代表。

    • ebian:由志愿者开发的发行Linux的非商业项目
    • Ubuntu:Debian项目构建的一个Linux发行版,专注于提供用 户友好的桌面和服务器操作系统。
    • RedHat:红帽公司,产品包括RHEL、Fedora Core与CentOS。
    • CentOS:RHEL依照开放源代码规定释出的源码所编译而成。 Kali:基于Debian的Linux发行版,预装了许多安全工具。

Linux文件与目录

目录结构

在这里插入图片描述

常见的目录

  • etc: 系统配置所在文件夹
  • home:除了root用户以外,其他所有用户都会在home中有一个同名文件夹,且 用户对自己的文件夹具有完整操作权限。
  • root:只有root用户才有权限操作。
  • usr:存放系统软件资源
  • tmp:系统临时文件等所在目录。
  • bin:命令工具

文件与目录的相关命令

查看
  • 查看

    pwd:查看当前所在文件位置
    cd :切换目录 (后面接绝对路径或相对路径)
    cd . :.表示当前路径
    cd .. :..表示父级路径
    ls :以平铺方式显示当前目录包含内容;
    ls -a :查看隐藏文件
    ls -l :列出当前目录下文件(详细)
    ll :以详细列表形式显示当前目录包含内容。
    
增删改
  • 增删改

    mkdir -p  路径:如果路径中包含了不存在的路径,自动创建。
    mkdir -p test01/test01-1 : 同时创建父子目录(-p表示多级创建)
    rmdir 文件路径 :删除空目录
    rm 文件名  :删除  
    rm -r 文件夹 :递归删除非空目录 
    rm -f 文件 :强制删除某文件
    touch 文件名  :创建文件 
    rm 文件名  : 删除
    

文件权限

文件权限解读
  • 文件权限解读

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    d后每3个字符为一组,分别是文件拥有者权限、同一组用户权限、其他用户权限

    数字15代表里面有15份文件,后面接kali kali分别是用户和组

文件权限管理
  • 更改文件权限

    chmod
    例如:
    chmod 777 文件名
    chmod u=rwx,g=rx,o=rx 文件名
    
更改文件所有者
  • 更改文件所有者

    chown
    例如:
    chown kali:kali test 修改为kali用户,kali组
    chown 命令用于改变文件或目录的所有者和/或组
    

Linux用户和组

用户(User)

  • 用户( User) 用户账户:每个使用Linux系统的个体或进程都需要一个用户账户。用户账户包含了用户的 信息,如用户名、用户ID(UID)、用户组、家目录、默认Shell等。
  • UID(User ID):每个用户都有一个唯一的数字标识符,称为用户ID(UID)。UID为0的用户是超级用户(root),拥有系统上的所有权限。
  • 用户信息文件:/etc/passwd文件包含了系统上所有用户的信息。每一行代表一个用户,包 括用户名、UID、组ID(GID)、用户全名或描述、家目录、默认Shell等信息。
  • 用户密码文件:用户的密码信息不直接存储在/etc/passwd文件中,而是存储在/etc/shadow 文件中。该文件包含了加密后的密码、密码最后一次更改的日期、密码的最小和最大有效期等信息

组(Group)

  • 用户组:用户组用于将多个用户组织在一起, 以便于对文件或目录的权限管理。用户可以是多个 组的成员。
  • GID(Group ID):每个用户组都有一个唯一 的数字标识符,称为组ID(GID)。
  • 组信息文件:/etc/group文件包含了系统上 所有用户组的信息。每一行代表一个组,包括组名、 GID、组成员列表等信息。

用户与组的相关命令

  • 查看

    查看当前用户:whoami
    查看当前用户组:groups
    查看当前用户详细信息:id 同户名
    查看所有用户:cat  /etc/passwd
    查看所有组:cat /etc/group
    
  • 增删改

    添加用户:useradd 用户名 #新增某用户就直接新增对应的组了
    删除用户:userdel 用户名
    修改用户信息:usermod 
    例子:usermod -aG 组名 用户名 #将某用户加入某组
    
    创建新用户组:groupadd
    删除用户组:groupdel
    查看所有组:cat /etc/group
    修改用户组信息:groupmod
    
  • 权限相关

    切换用户:su - 用户名(不加用户名表示切换root)
    以系统管理者的身份执行指令:sudo 具体命令
    配置密码:passwd 用户名(一般要在前面加sudo)
    修改root密码:passwd root <密码>
    

所有用户和所有组信息

  • cat /etc/passwd

    在这里插入图片描述

    用户名:密码:用户ID:组ID:用户说明:用户目录:shell命令解释器

  • cat /etc/group

    在这里插入图片描述

    组名:组密码:组标识号:组成员(用户列表,每个用户之间用,号 分割;本字段可以为空;如果字段为空表示用户组为GID的用户名)

    由上图可见,组和用户可以是一对一、一对多、多对一以及多对多的关系

vim编辑器

vim工作模式

  • 在这里插入图片描述

命令模式

  • 该状态下敲击键盘会被Vim识别为命令,而非输入字符。
    常用命令:
    i \a 切换到输入模式,在光标当前位置开始输入文本
    o 在当前行的下方插入一个新行,并进入插入模式
    dd 删除当前行
    yy 复制当前行
    p 粘贴剪贴板内容到光标下方
    u 撤销上一次操作
    : 切换到底线命令模式
    

底线命令模式

  • 在命令模式下按下 ”:“(英文冒号)就进入
    了底线命令模式 常用命令:
    q 退出
    wq 保存并退出vim编辑
    q! 强制退出vim编辑 不保存
    

Linux进程与软件管理

进程管理

  • # pid:进程标识符
    ps:显示当前终端下运行的进程
    ps -aux:显示所有用户的所有进程,包括系统进程,提供更详细的进程信息
    kill (PID): 终止指定pdi进程
    kill -9 (pid):强制终止进程
    

包管理器

  • 在这里插入图片描述

  • 在这里插入图片描述

  • apt(apt-get)
    需要root用户权限,不然会报错,权限不足
    apt update 列出所有可更新的软件清单命令
    apt upgrade 升级软件包
    apt install <package_name> 安装指定的软件命令
    apt remove <package_name> 删除软件包命令
    apt list --installed 列出所有已安装的包
    apt list --all-versions 列出所有已安装的包版本信息
    

安装镜像源

  • 源列表

    #阿里源
    deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
    deb-src https://mirrors.aliyun.com/kali kali-rolling main non-freecontrib
    #中科大源
    deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
    deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-freecontrib
    #清华大学源
    deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contribnon-free
    deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling maincontrib non-free
    #浙大源
    deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
    deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
    #东软大学源
    deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
    deb-src http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
    #网易 Kali 源
    deb http://mirrors.163.com/debian wheezy main non-free contrib
    deb-src http://mirrors.163.com/debian wheezy main non-free contrib
    
  • 更换镜像源

    vim /etc/apt/sources.list
    
  • 推荐使用阿里镜像源

    #sources.list内容
    
    # See https://www/kali.org/docs/general-use/kali-linux-sources-list-repositories
    deb http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware
    
    # Additional line for source packages
    # deb-src http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware
    deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
    deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
    
  • 更新索引

    # 部分因为某些原因可能需要加证书才能继续进行包安装
    wget -q -O - https://archive.kali.org/archive-key.asc | sudo apt-key add
    apt-get update
    

防火墙(暂时了解)

iptables-静态防火墙

iptables介绍
  • 早期的 Linux 系统中默认使用的是 iptables 防火墙,配置文件在/etc/sysconfig/iptables
  • 主要工作在网络层该防火墙使用链式规则,只可以过滤互联网的数据包,无法过滤从内网到内网的数据包
  • iptables 只可以通过命令行进行配置
  • iptables 默认是允许所有,需要通过拒绝去做限制
  • iptables 在修改了规则之后必须得全部刷新才可以生效,还会丢失连接(无法守护进程)
iptables工具安装
  • 对于基于 Debian 的系统,使用以下命令安装

    sudo apt install iptables
    
  • 对于基于 RPM 的系统,使用以下命令

sudo yum  install iptables
对于 CentOS 8 及更高版本,使用 dnf install iptables

firewalld-动态防火墙

firewalld介绍
  • 取代了之前的 iptables 防火墙,配置文件在/usr/lib/firewalld 和/etc/fiewalld 中
  • 主要工作在网络层 新增区域概念,不仅可以过滤互联网的数据包,也可以过滤内网的数据包
  • firewalld 不仅可以通过命令行进行配置,也可以通过图形化界面配
  • firewalld 默认是拒绝所有,需要通过允许去放行
  • firewalld 可以动态修改单条规则,动态管理规则集(允许更新规则而不破环现有会话和连接,可以守护进程)
firewalld安装
  • 在安装 firewalld 之前,建议先更新系统的软件包列表。

  • 对于基于 RPM 的系统(如 CentOS、Fedora 等),可以使用以下命令:

    sudo yum check-update
    
  • 对于使用 dnf 的系统(如较新的 CentOS 版本):

    sudo dnf check-update
    
  • 对于基于 Debian 的系统(如 Ubuntu),虽然通常不预装firewalld,但也可以使用 apt 命令进行安装(不过通常推荐使用 UFW 作为默认防火墙)

    sudo apt update
    sudo apt install firewalld
    

网安作为攻击方,很少用防火墙,所以这里仅先了解即可

Linux Shell

什么是Shell

  • Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

  • Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

    在这里插入图片描述

  • Shell 脚本(shell script),是一种为shell编写的脚本程序。与Windows 批处理一样,其意义为便于批量处理多种操作

  • 由于bash易用与免费,其被广泛使用也是大多数Linux系统的默认Shell。 (Kali目前为zsh,兼容bash)

写一个简单的Shell脚本

  • 创建脚本文件,shell脚本通常以.sh结尾

    touch test.sh
    
  • 编写内容

    #!/bin/bash #用来指定该脚本的解释器
    echo "hello world" #把指令打印到终端
    
  • 执行脚本

    ./test.sh
    # 若操作权限不够,需要提权
    chmod 777 ./test.sh
    

xshell和xftp

xshell和xftp是什么

  • xshell业界最强大的ssh客户机

  • xftp可以轻松的通过过网络进行文件传输

使用xshell连接kali

打开kali的ssh功能
  • 使用vim编辑ssh功能的配置文件

    # 编辑ssh功能的配置文件
    vim /etc/ssh/sshd_config
    
  • 修改sshd_config文件以允许ssh

    # 修改sshd_config文件
    # 第一步 改33行(右下角有行数),
    # PermitRootLogin prohibit-password 改为:
    PermitRootLogin yes # 取消注释,允许root用户通过ssh登录
    
    # 第二步 改57行
    # PasswordAuthentication no 改为:
    PasswordAuthentication yes # 允许通过密码登录
    
    esc -> :wq -> 回车
    
  • 打开kali的ssh功能

    service ssh start
    
  • 使ssh功能开机自启动

    update-rc.d ssh enable
    
  • 检查ssh状态

    systemctl status ssh
    # 查看是否为 enable 和 active(running) 状态
    
  • 查看kali的ip地址

    ifconfig
    # 记录下该IP地址
    
xshell连接
  • 新建 -> 连接-用户身份验证 -> 输入ip和port -> 连接 -> 输入用户名密码

    VMware三种网络过连接模式,对应VMware三张网卡(VMnet),主机通过虚拟网卡和VMware的网卡进行通信,编号是对应的。主机ipconfig后发现,一个虚拟机对应两张网卡,分别供NAT模式和仅主机模式使用

    • 桥接模式:使用的是和主机同一种网络,不需要借助主机的虚拟网卡
    • NAT模式:和物理机不在一个网络,IP地址发生了变化
    • 仅主机模式:和物理机不在一个网络,IP地址发生了变化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值