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.

原文地址:https://www.cnblogs.com/yusq77/p/10819752.html