udev的rules编写

article/2025/9/23 16:13:49

1.综述
本文简单介绍udev机制,并编写udev规则,实现手机即U盘自动挂载
2.udev介绍
udev 是 Linux2.6 内核里的一个功能,它替代了原来的 devfs,成为当前 Linux 默认的设备管理工具。udev 以守护进程的形式运行,通过帧听内核发出来的 uevent 来管理 /dev 目录下的设备文件。不像之前的设备管理工具,udev 在用户空间(User space)运行,而不在内核空间(kernel space)运行。

udev工作流程图:
在这里插入图片描述

3.规则文件
规则文件是 udev 里最重要的部分,默认是存放在 /etc/udev/rule.d/ 下。所有的规则文件必须以".rules" 为后缀名。
下面是一个简单的规则:

KERNEL=="sda", NAME="my_root_disk", MODE="0660"

KERNEL 是匹配键,NAME 和 MODE 是赋值键。这条规则的意思是:如果有一个设备的内核名称为
sda,则该条件生效,执行后面的赋值:在 /dev 下产生一个名为my_root_disk 的设备文件,并把设备
文件的权限设为 0660。
3.1 udev 规则的所有操作符:

"==" :比较键、值,若等于,则该条件满足;
"!=":比较键、值,若不等于,则该条件满足;
"=":对一个键赋值;
"+=":为一个表示多个条目的键赋值;
":=":对一个键赋值,并拒绝之后所有对该键的改动。目的是防止后面的规则文件对该键赋值。

3.2 udev 规则的匹配键:

ACTION:事件(uevent)的行为,例如:add(添加设备)、remove(删除设备);
KERNEL:内核设备名称,例如:sda,cdrom;
DEVPATH:设备的 devpath 路径;
SUBSYSTEM:设备的子系统名称,例如:sda 的系统为 block;
BUS:设备在 devpath 里的总线名称,例如:usb;
DRIVER:设备在 devpath 的设备驱动名称,例如:ide-cdrom;
ID:设备在 devpath 里的识别号;
SYSFS{filename}:设备的 devpath 路径下,设备的属性文件 "filename" 里的内容;
ENV{key}:环境变量。在一条规则中,可以设定最多五条环境变量的 匹配键; PROGRAM:调用外部命令; 
RESULT:外部命令 PROGRAM 的返回结果。

4.udev 规则文件编写应用举例
4.1 手机接入的规则文件编写
(1)接入手机后,将手机的模式设置为开发者模式,并通过键入dmesg查看设备信息:
在这里插入图片描述
或者通过:

udevadm info --attribute-walk --name=/dev/设备名字

指令查看设备的具体信息
这里手机设备一般在/dev/bus/usb/001/中
这里我的设备为025:在这里插入图片描述
故通过键入:

udevadm info --attribute-walk --name=/dev/bus/usb/001/025

查看插入设备的具体信息:
在这里插入图片描述
(2)配置.rules文件
将路径切换至 /etc/udev/rules.d 路径中,键入:

sudo vi 51-android.rules

编写规则文件:

UBSYSTEM=="usb", ATTR{idVendor}=="2d95",ATTR{dProduct}=="6013", MODE="0666"

这里的键值对选用ATTR{idVendor}和ATTR{dProduct},可以在前面获得的信息中选择相应键值对。
(3)运行结果
编写完.rules文件后,插入手机便可使用adb指令连接手机:
在这里插入图片描述

4.2 usb自动挂载的规则文件编写
(1)插入U盘后,可通过同样的方法查看U盘设备信息
这里U盘设备的路径有所不同为:
/dev/sdb1

 udevadm info --attribute-walk --name=/dev/sdb1

查看信息:
在这里插入图片描述
(2)根据信息在/etc/udev/rules.d 中创建.rules文件:并编写以下规则实现u盘自动挂载:
sudo vi usbblock.rules

ACTION=="add", SUBSYSTEMS=="usb", SUBSYSTEM=="block", RUN{program}+="/bin/mkdir /media/%k" ,RUN{program}+="/usr/bin/systemd-mount --no-block --collect $devnode /media/%k"

(3)运行结果
编写完之后通过tree /media
在这里插入图片描述
查看U盘内容
【补充】若没有编写.rules文件,需要用到mount命令挂载U盘:

sudo mount /dev/sdb1 /mnt/

将U盘挂载到/mnt目录下才可以显示
在这里插入图片描述


http://chatgpt.dhexx.cn/article/veuMri6q.shtml

相关文章

[Linux 基础] -- udev 和 rules 使用规则

前言: 本文以通俗的方法阐述 udev 及相关术语的概念、udev 的配置文件和规则文件,然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和查询设备信息的实例。本文会使那些需要高效地、方便地管理 Linux 设备的用户受益匪浅,这些用…

linux udev

了解udev (Linux dynamic device management) 1.概述 Udev is the device manager for the Linux kernel. Udev dynamically creates or removes device node files at boot time in the /dev directory for all types of devices. udev is a replacement for the Device File…

udev(六):udev

原创文章&#xff0c;转载请注明出处&#xff0c;谢谢&#xff01; 作者&#xff1a;清林&#xff0c;博客名&#xff1a; 飞 空静渡 <!-- page { margin: 2cm } P { margin-bottom: 0.21cm } --> 基于上面提到的问题&#xff0c;便开始了 udev 的项目。 …

udev(八):实战:使用udevadm修改usb优盘在/dev下的名字

原创文章&#xff0c;转载请注明出处&#xff0c;谢谢&#xff01; 作者&#xff1a;清林&#xff0c;博客名&#xff1a; 飞 空静渡 udev的规则的编写&#xff0c;我这里就不说了&#xff0c;大家可以在udev的文档中可以了解&#xff0c;有时间的话我在安排一…

Linux下udev规则详解

如何运用udev&#xff1f;编写udev规则&#xff1f;通过udev更好的管理Linux设备? udev是什么&#xff1f; udev 是 Linux2.6 内核里的一个功能&#xff0c;它替代了原来的 devfs&#xff0c;成为当前 Linux 默认的设备管理工具。udev 以守护进程的形式运行&#xff0c;通过侦…

Udev设备管理器

udev 引入 在2.4内核中 引入了 devfs&#xff0c;他支持设备节点的动态创建。devfs提供了在内存中的文件系统中创建设备节点的能力。设备驱动程序能够自主的管理自己的设备文件。而命名节点的任务还是落到了设备驱动程序头上。但是&#xff0c;设备命名策略是可管理的&#xf…

linux下udev详解

一.udev简介 udev是一个设备管理工具&#xff0c;udev以守护进程的形式运行&#xff0c;通过侦听内核发出来的uevent来管理/dev目录下的设备文件。udev在用户空间运行&#xff0c;而不在内核空间 运行。它能够根据系统中的硬件设备的状态动态更新设备文件&#xff0c;包括设备…

[2020.1.14][udev] udev介绍

1 什么是udev udev是一种工具&#xff0c;它能够根据系统中的硬件设备的状态动态更新设备文件&#xff0c;包括设备文件的创建&#xff0c;删除等。 设备文件通常放在/dev目录下。使用udev后&#xff0c;在/dev目录下就只包含系统中真正存在的设备。 设备访问控制udev:user …

LINUX下 Udev详解

如果你使用Linux比较长时间了&#xff0c;那你就知道&#xff0c;在对待设备文件这块&#xff0c;Linux改变了几次策略。在Linux早期&#xff0c;设备文件仅仅是是一些带有适当的属性集的普通文件&#xff0c;它由mknod命令创建&#xff0c;文件存放在/dev目录下。后来&#xf…

wmic bug

今天尝试用wmic进行横向移动&#xff0c;老是出现 , - Alias not found&#xff0c;再三确认不是命令的问题&#xff0c;尝试修改域控用户的密码后成功解决&#xff0c;难道这时wmic的bug&#xff1f;&#xff1f;&#xff1f; 猜测是因为密码种含有 , . 这样的符号导致命令产生…

wmic命令学习

我目前知道wmic可以查询进程&#xff0c;还可以查询服务。查询进程使用wmic process,如果想知道进程的名字、进程号、执行文件路径可以通过get来获取&#xff0c;还可以根据where筛选进程进行查询。 wmic process get name, processid,executablepath 查询主机进程信息&#xf…

Windows 命令 WMIC 使用详解

WMIC扩展WMI&#xff08;Windows Management Instrumentation&#xff0c;Windows管理工具&#xff09; &#xff0c;提供了从命令行接口和批命令脚本执行系统管理的支持。在WMIC出现之前&#xff0c;如果要管理WMI系统&#xff0c;必须使用一些专门的WMI应用&#xff0c;例如S…

wmic java_Java执行wmic命令获取系统环境变量

1.首先编写文件setenv.bat设置系统环境变量&#xff1a; echo %cd% set framework_home%cd% echo %framework_home% wmic ENVIRONMENT create name"framework_home",username"",VariableValue"%framework_home%" Note: 此处假设framework_home为…

wmic命令

友情链接&#xff1a;wmic命令 目录 一、如何获取帮助文档 &#xff08;1&#xff09;wmic /? &#xff08;2&#xff09;wmic nic /? &#xff08;3&#xff09;wmic nic get ##获取网卡所有信息&#xff0c;如下只列出部分列 &#xff08;4&#xff09;信息筛…

内网渗透 | powershellwmic详解

文章目录 引子PowerShell0x001基本概念0x002命令格式0x003基本使用0x004常用命令0x005powershell脚本0x006参考文章 WMIC0x001基本概念0x002命令格式0x003常用命令1、目标系统相关2、用户管理 0x004参考文章 引子 之前在内网渗透&#xff0c;免杀中到处能看到powershell和wmic的…

wmic横向

WMI&#xff0c;是Windows 2K/XP管理系统的核心&#xff1b;对于其他的Win32操作系统&#xff0c;WMI是一个有用的插件。WMI以CIMOM为基础&#xff0c;CIMOM即公共信息模型对象管理器&#xff08;Common Information Model Object Manager&#xff09;&#xff0c;是一个描述操…

【转】wmic命令

友情链接&#xff1a;wmic命令 目录 一、如何获取帮助文档 &#xff08;1&#xff09;wmic /? &#xff08;2&#xff09;wmic nic /? &#xff08;3&#xff09;wmic nic get ##获取网卡所有信息&#xff0c;如下只列出部分列 &#xff08;4&#xff09;信息筛选 二、…

WMIC学习笔记

wmic 是什么 wmic 是计算机管理工具&#xff0c;提供给管理员以命令行的方式管理计算机。在 win10 已经弃用&#xff0c;不过还能用。 执行模式 WMIC 有两种执行模式&#xff1a;交互模式(Interactive mode)和非交互模式(Non-Interactive mode)。 在命令提示符或“运行”窗口…

信息收集--wmic命令

后渗透信息收集之wmic命令的一些使用方法 前言一、关于wmic二、wmic的简单使用三、以进程为例展现wmic的使用四、关于powershell的Get-Wmi 对象 前言 wmic和cmd一样在所有的windows版本中都存在&#xff0c;同时wmic有很多cmd下不方便使用的部分 一、关于wmic WMI命令行(WMIC)实…

Wmic

WMIC&#xff08;Windows Management InstrumentationCommand Line&#xff09; windows除了cmd &#xff0c;powershell以外另一个更为强大的命令执行shell: windows最令网管诟病的地方就是命令行没有unix和linux强大。但这种情况正在不断改观&#xff0c;windows命令行也越来…