一、 知识整理
1、 modinfo 命令:显示模块的详细描述信息:
-n 只显示模块文件路径
-p 显示模块参数
-a auther
-d description
-l license 协议
modprobe 命令:装载或卸载内核
-r 卸载内核,同 rmmod
配置文件: /etc/modprobe.d/*.conf
depmod 命令:内核模块依赖关系文件及系统信息映射文件的生成工具
[root@centos68 testdir]# depmod[root@centos68 testdir]#
insmod 命令:加载模块,指定模块文件,不自动解决依赖模块:
[root@centos68 ~]# modprobe ntfs[root@centos68 ~]# lsmod
Module Size Used by
ntfs 197214 0
nls_utf8 1389 1
autofs4 33127 3
[root@centos68 ~]# rmmod ntfs
[root@centos68 ~]# insmod `modinfo -n ntfs`
[root@centos68 ~]# lsmod
Module Size Used by
ntfs 197214 0
nls_utf8 1389 1
autofs4 33127 3
2、/proc 目录:内核把自己内部状态信息及统计信息,以及可配置参数通过 proc 伪文件系统加以输出:有些可以指定配置,有些不能修改。内核信息:
[root@centos68 ~]# cat /proc/cmdlinero root=UUID=aaad69ad-d716-4676-941f-851223ddab7f rd_NO_LUKS
KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD.UTF-8 rd_NO_LVM rd_NO_DM quiet
二、 命令详解及事例
1、 系统配置文件丢失的修复方法: 当没有备份文件的时候, 想恢复 /etc/inittab 文件 :
通过重新安装软件包来恢复,首先找到 /etc/inittab 属于哪个 rpm 包,然后救援模式下安装 rpm 包,使用 force 或 replacepkgs 覆盖安装即可恢复原文件 :
[root@centos68 sysroot]# rpm -qf /etc/inittabinitscripts-9.03.53-1.el6.centos.x86_64
若只想提取 RPM 包中的 /etc/inittab 文件进行恢复,可以在进入救援模式后,执行命令:
[root@centos68testdir]# rpm2cpio /media/cdrom/Packages/initscripts-9.03.53-1.el6.centos.x86_64.rpm |cpio -idv ./etc/inittab 将单个文件解压到当前目录下,不写目录默认解压所有文件到当前目录。2、sysctl 命令:对 sys 目录下的文件操作。默认配置文件: /etc/sysctl.conf
[root@centos68 ~]# cat /etc/sysctl.conf# Kernel sysctl configuration file for Red Hat linux
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Use '/sbin/sysctl -a' to list all possible parameters.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
设置某参数: sysctl -w parameter=VALUE ,此处的 . 表示目录路径 / 。
[root@centos68 ~]# sysctl -w net.ipv4.ip_forward=1net.ipv4.ip_forward = 1
[root@centos68 ~]# sysctl -w net.ipv4.ip_forward=0
net.ipv4.ip_forward = 0 通过读取配置文件设置参数: sysctl -p [/PATH/CONF_FILE] :若直接修改了配置文件,则用此命令重读配置文件进内核。 [root@centos68 ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
最大最小共享内存
[root@centos68 ~]# sysctl -p /proc/sys/net/ipv4/ip_forward[root@centos68 ~]#
内核中的路由转发: /proc/sys/net/ipv4/ip_forward , 0 或 1
常用的几个参数: net.ipv4.ip_forward
net.ipv4.icmp_echo_ignore_all 开启和禁止 linux 系统的 ping 功能, 1 为禁止vm.drop_caches 清空缓存 ,用 free 查看
echo 1 > /proc/sys/vm/drop_caches3、sys 目录:输出内核识别出的各硬件设备的相关属性信息,也有内核对硬件特性的设定信息,有些参数是可以修改的,用于调整硬件工作特性。 udev 通过此路径下输出的信息动态为各设备创建所需要的设备文件, udev 是运行用户空间程序。 udev 为设备创建设备文件的时,会读取其事先定义好的规则文件,一般在 /etc/udev/rules.d 及 /usr/lib/udev/rules.d 目录下。专用工具: udevadmin , hotplug
4、ramdisk 文件的制作: mkinitrd 和 dracut
dracut|mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)5、 了解全部硬件设备信息: hal-device
查看 PCI 设备信息: lspci , lsusb
-v 详细信息
-vv 更详细的信息
[root@centos68 boot]# lsusbBus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
第一个字段: USB 主控器号: 001 号接了一个设备, 002 号接了 3 个
第二个字段:总线上的设备序列号,在一个总线上序列号唯一
第三个字段:供应商和产品 ID
第四个字段:供应商和产品 ID 字符串表示形式
[root@centos68 boot]# lspci | grep -i usb02:00.0 USB controller: VMware USB1.1 UHCI Controller
02:02.0 USB controller: VMware USB2 EHCI Controller
一共有两个主控器
[root@centos68 boot]# lspci00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10)
00:0f.0 VGA compatible controller: VMware SVGA II Adapter
00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (r
ev 01)00:11.0 PCI bridge: VMware PCI bridge (rev 02)
00:15.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.6 PCI bridge: VMware PCI Express Root Port (rev 01)
lspci 输出内容:第一个字段: <bus>:<slot>:<func>: 具体参考 -s 参数
第一个字段: Host bridge ,数字形式通过 -n 获得
第三个字段:供应商,数字形式通过 -n 获得
第四个字段:产品 ID
三、 课后练习
1、 破解 root 口令,并为 grub 设置保护功能
首先进入单用户模式更改密码


设置保护功能:更改 grub.conf 文件: password 写在 title 的上方,即内核编辑时候的密码。若写在 title 内部则是开机密码。为增加安全性,不使用明文,使用 md5 加密,在 vim 中直接读入命令:

重启之后,再进行内核编辑则需要输入密码,不影响开机。