zoukankan      html  css  js  c++  java
  • Linux 系统管理

    一、用户修改密码

    问题现象

    用户登录后,修改自己的密码,出现 passwd:Authentication token manipulation error(身份验证令牌操作错误),一般是密码文件的权限的问题,不过也有可能是根目录空间满。

    问题定位

    lsattr 命令查看存放用户和密码的文件属性,发现有i选项(不得任意更动文件或目)。所以所有的用户都不能修改密码,因为没有权限允许。

    [root@client ~]# lsattr /etc/passwd && lsattr /etc/shadow
    ----i----------- /etc/passwd
    ----i----------- /etc/shadow

    问题解决

    chattr 命令将i权限撤销,然后再执行 passwd 改密操作。为了安全起见,改密后把存放用户和密码的文件保护起来

    [root@client ~]# chattr -i /etc/passwd && chattr -i /etc/shadow
    
                              /* 进行改密操作 */
    
    [root@client ~]# chattr +i /etc/passwd && chattr +i /etc/shadow

    Linux命令参考

    在Linux中用chattr和lsattr命令管理文件和目录属性

     

    二、用GDB调试segmentation fault

    当运行程序发生段错误时,使用GDB调试能快速定位错误位置

    Linux提供的core dump机制:当程序中出现内存操作错误时,会发生崩溃并产生核心文件(core文件)。

    (1)无论你是用Makefile来编译,还是直接在命令行手工输入命令来编译,都应该加上 -g 选项。

    (2)一般来说,在默认情况下,在程序崩溃时,core文件是不生成的(很多Linux发行版在默认时禁止生成核心文件)。所以,你必须修改这个默认选项,在命令行执行:

    ulimit -c unlimited  // 不限制生成的core文件的大小

    注,ulimit 的其他用法

    ulimit -c 0  // 禁止产生core文件
    ulimit -a    // 将显示所有的用户定制

    (3)运行你的程序,使之重现Segmentation Fault错误。

    (4)这时,你会发现在你程序同一目录下,生成了一个文件名为 core.*** 的文件,即核心文件。例如,“core.1523”这样的文件。

    (5)用GDB调试它。假设你的可执行程序名为test,则在命令行执行:

    gdb test core.1523

    三、网络分析工具

    ping

    (1)使用ipconfig/all观察本地网络设置是否正确。(Linux下使用ifconfig)
    (2)ping 127.0.0.1,来检查本地的TCP/IP协议有没有设置好。
    (3)ping本机IP地址,这样是为了检查本机的IP地址是否设置有误。
    (4)ping本网网关或本网IP地址,这样是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常。(在非局域网中这一步骤可以忽略)
    (5)ping本地DNS地址,这样做是为了检查本地DNS服务器是否工作正常
    (6)ping远程IP地址,这主要是检查本网或本机与外部的连接是否正常。ping远程IP地址可以用来测试网络延时。

    tcpdump

    截取某主机相关的包

    想要截获所有210.27.48.1的主机收到的和发出的所有的数据包,使用如下命令

    tcpdump host 210.27.48.1

    想要截获主机210.27.48.1和主机210.27.48.2或210.27.48.3的通信,使用如下命令(在命令行中使用括号时,一定要添加“”)

    tcpdump host 210.27.48.1 and (210.27.48.2 or 210.27.48.3 )

    如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用如下命令

    tcpdump ip host 210.27.48.1 and ! 210.27.48.2

    如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令

    tcpdump ip host 210.27.48.1 and ! 210.27.48.2
    

    截取某端口相关的包 

    获取在端口6666上通过的包,使用如下命令

    tcpdump port 6666

    截取某网卡的包 

    获取在网卡eth1上通过的包,使用如下命令

    tcpdump -i eth1

    netstat

    (1)IP和TCP的分析,如查看链接某服务端口最多的IP地址命令是

    netstat -nat | grep “192.168.1.15:22” | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | head -20 

    (2)TCP各自状态列表

    netstat -nat | awk ‘{print $6}’ 


    (3)先把各种TCP状态全部取出来,然后使用uniq -c统计,之后再进行排序

    netstat -nat | awk ‘{print $6}’ | sort | uniq -c

    lsof

    (1)查看6666端口现在运行情况,命令:lsof -i:6666

    (2)查看所属root用户进程所打开的文件,文件类型为txt,命令:lsof -a -u root -d txt

    (3)监控打开的文件和设备。查看设备 /dev/tty1被哪些进程占用的命令是:lsof /dev/tty1

    (4)监控程序,查看指定程序server打开的文件:lsof -c server

    (5)监控用户,查看指定用户sharexu打开的文件:lsof -u sharexu

    四、修改网卡名  

    cd /etc/sysconfig/network-scripts/    //进入网卡文件夹
    vi ifcfg-ens33   //将ifcfg-eno16777736(系统默认)里面的NAME DEVICE项修改为eth0 
    mv ifcfg-ens33 ifcfg-eth0   // 修改网卡名
    vi etc/default/grub   //加入“net.ifnames=0 biosdevname=0 ”到GRUB_CMDLINE_LINUX变量,禁用该可预测命名规则
    grub2-mkconfig -o /boot/grub2/grub.cfg    //新生成GRUB配置并更新内核参数
    reboot  //重启

    四、man命令后面的作用

    可通过man man 进行查看:

    作者:yusq77

    -------------------------------------------

    Wish you all the best and good health in 2021.

  • 相关阅读:
    NetCore基于Consul+Ocelot+Docker+Jenkin搭建微服务架构
    Linux文档整理之【Jenkins+Docker自动化部署.Net Core】
    分布式事务
    redis
    pandas读取Excel
    centos7上用docker搭建简单的前后端分离项目
    CENTOS 设置swap 并让系统使用它
    MikroTik RouterOS安装chr授权到阿里云虚拟机(转)
    IDEA使用External Tools配置来查看javap反编译字节码
    【k8s】metrics-server
  • 原文地址:https://www.cnblogs.com/yusq77/p/10819752.html
Copyright © 2011-2022 走看看