linux设置挂载指定的usb,自动挂载

一、设置指定的USB

在Linux系统中,如果您只想让系统挂载特定的USB设备,而忽略其他的USB设备,可以通过创建自定义的udev规则来实现。以下是设置系统只能挂载指定USB设备的基本步骤:

  1. 确定USB设备的属性
    首先,您需要确定您想要挂载的USB设备的属性,如供应商ID(idVendor)和产品ID(idProduct)。可以使用lsusb命令列出所有已连接的USB设备,并找到您想要指定的设备。

    lsusb
    

    或者,使用udevadm获取更详细的信息:

    udevadm info -a -p $(udevadm info -q path -n /dev/sdX)
    

    其中/dev/sdX是您的USB设备节点。

  2. 创建udev规则文件
    基于您收集到的设备信息,创建一个udev规则文件。这个文件将定义当特定USB设备连接时,系统将采取的行动。

    创建一个新的规则文件:

    sudo nano /etc/udev/rules.d/99-allow-only-usb.rules
    

    添加如下规则:

    ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="您的供应商ID", ATTRS{idProduct}=="您的产品ID", RUN+="/bin/echo 'USB device %k allowed'"
    

    请将“您的供应商ID”和“您的产品ID”替换为您的实际ID。

  3. 阻止未指定的USB设备
    创建另一个规则文件,以阻止未指定的USB设备:

    sudo nano /etc/udev/rules.d/99-block-other-usb.rules
    

    添加如下规则:

    ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}!="您的供应商ID", ENV{ID_MODEL_ID}!="您的产品ID", RUN+="/bin/echo 'USB device %k blocked'"
    
  4. 重新加载udev规则
    保存规则文件并退出编辑器,然后重新加载udev规则以应用更改:

    sudo udevadm control --reload-rules
    
  5. 测试规则
    您可以使用udevadm测试规则,以确保它们按预期工作:

    sudo udevadm test $(udevadm info -q path -n /dev/sdX)
    

    其中/dev/sdX是您的USB设备节点。

请注意,这些规则仅用于在控制台中打印消息,以确认特定USB设备被允许或阻止。如果您想要完全阻止未授权的USB设备,您可能需要结合使用udev规则和usbguard或创建一个脚本来实际阻止设备挂载。

另外,如果您想要挂载特定的USB设备,您需要在udev规则中添加挂载命令,或者在/etc/fstab中添加相应的条目,以实现自动挂载。

在编辑系统文件和创建规则时,请谨慎行事,因为错误的规则可能会导致系统不稳定或安全问题。如果您不确定如何进行,最好咨询有经验的系统管理员。

二、自动挂载

要在Linux系统中设置自动挂载指定的USB设备,您可以通过两种主要方式来实现:使用udev规则或编辑/etc/fstab文件。下面是每种方法的步骤:

方法一:使用udev规则自动挂载

  1. 创建挂载脚本
    编写一个脚本,当udev规则触发时,这个脚本将执行挂载命令。

    sudo nano /usr/local/bin/mount_usb.sh
    

    添加以下内容(请根据需要修改脚本):

    #!/bin/bash
    DISK="/dev/$1"
    MOUNT_POINT="/mnt/usb"
    FILESYSTEM=$(lsblk -no FSTYPE $DISK)
    
    if [ ! -d "$MOUNT_POINT" ]; then
        sudo mkdir -p "$MOUNT_POINT"
    fi
    
    if [ "$FILESYSTEM" != "" ]; then
        sudo mount -t $FILESYSTEM $DISK $MOUNT_POINT
    fi
    

    使脚本可执行:

    sudo chmod +x /usr/local/bin/mount_usb.sh
    
  2. 创建udev规则
    创建一个udev规则文件,当指定的USB设备连接时,自动执行挂载脚本。

    sudo nano /etc/udev/rules.d/99-usb-automount.rules
    

    添加如下规则:

    ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="您的供应商ID", ATTRS{idProduct}=="您的产品ID", RUN+="/usr/local/bin/mount_usb.sh %k"
    

    替换"您的供应商ID""您的产品ID"为您的USB设备的供应商和产品ID。

  3. 重新加载udev规则
    重新加载udev规则以应用更改。

    sudo udevadm control --reload-rules
    

方法二:在/etc/fstab中添加条目以实现自动挂载

  1. 确定USB设备的UUID
    使用blkid命令获取USB设备的UUID。

    sudo blkid
    

    找到您的USB设备的条目,并复制其UUID。

  2. 编辑/etc/fstab文件
    将以下行添加到/etc/fstab文件中,实现自动挂载。

    sudo nano /etc/fstab
    

    添加如下条目:

    UUID=您的UUID /mnt/usb 自动检测的文件系统类型 defaults 0 0
    

    您的UUID替换为实际的UUID,/mnt/usb是您希望挂载的目录。

  3. 创建挂载点
    如果尚未存在,为USB设备创建一个挂载点。

    sudo mkdir -p /mnt/usb
    
  4. 测试挂载
    您可以通过以下命令测试挂载是否正确设置:

    sudo mount -a
    

这两种方法都可以实现USB设备的自动挂载。使用udev规则可以提供更灵活的控制,例如,您可以在脚本中添加额外的挂载选项或条件。而/etc/fstab方法则更为简单,但它不提供基于设备属性的挂载控制。根据您的具体需求选择适当的方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/601341.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图片8位, 16位,24位,32位原理,以及如何进行补位互转

写在前面:之前一直没有这个概念,以为像素就是十六进制如 #FFFFFF,或者rgb(255,255,255) 即可实现颜色定义,理解相当肤浅,接触到一个物联网项目,写底层的童鞋让我把16位如 0*FFFF转为24位去显示在浏览器&…

如何使用SkyWalking收集分析分布式系统的追踪数据

Apache SkyWalking 是一个开源的观测性工具,用于收集、分析和展示分布式系统的追踪数据。SkyWalking 支持多种语言的追踪,包括但不限于 Java、.NET、Node.js 等。以下是使用 SkyWalking 工具实现数据采集的详细步骤: 1. 下载和安装 SkyWalkin…

MCU做死循环时,到底应该用for(;;) 还是wihile(1)

MCU做死循环时 for while stm32中老工程师用forfor while背景for版本while版本正方观点:哪有好的编译器:反方观点:这种代码过时了工程师实地测试:和编译器和优化有关 建议还是用for参考 stm32中老工程师用for /* Start scheduler …

MS2107 宏晶微 音视频采集芯片 提供开发资料

1. 基本介绍 MS2107 是一款视频和音频采集芯片,内部集成 USB2.0 控制器和数据收发模块、视频 ADC模块、音频 ADC 模块和音视频处理模块。MS2107可以将 CVBS、S-Video 和音频信号通过 USB接口传送到 PC、智能手机和平板电脑上预览或采集。MS2107 输出支持 YUV422 和 MJPEG 两种…

css: hover 划过显示/隐藏 div 样式

1. 图例: 划过用display: block;和 display: none; 显示div和隐藏div div: <div class="sectorBox"> <div v-for="(item, index) in sectorList" :key="index" class="sill"> <div class="si…

三维点云处理-聚类(下)

接着前一部分数据聚类方法的介绍&#xff0c;由于K-means和GMM方法都是基于欧式距离信息处理的&#xff0c;两者分别以圆形和椭圆形来作为数据的聚类分割方式&#xff0c;这种情况下会导致环形图和月牙图数据分割不准确&#xff0c;因此进一步的介绍一种谱聚类方法&#xff0c;…

Elastic 通过 AI 驱动的安全分析改变 SIEM 游戏

作者&#xff1a;Santosh Krishnan, Jennifer Ellard 借助由搜索 AI 提供支持的新攻击发现功能&#xff0c;优先考虑攻击&#xff0c;而不是警报。 传统的安全信息与事件管理系统&#xff08;SIEM&#xff09;在很大程度上依赖屏幕背后的人类才能取得成功。警报、仪表盘、威胁…

Python高级编程-DJango2

Python高级编程-DJango2 没有清醒的头脑&#xff0c;再快的脚步也会走歪&#xff1b;没有谨慎的步伐&#xff0c;再平的道路也会跌倒。 目录 Python高级编程-DJango2 1.显示基本网页 2.输入框的形式&#xff1a; 1&#xff09;文本输入框 2&#xff09;单选框 3&#xff…

我用 GitHub 9.8k 的 Go 语言 2D 游戏引擎写了个游戏

前言 hi&#xff0c;大家好&#xff0c;这里是白泽。今天给大家分享一个 GitHub &#x1f31f;9.8k 的 Go 语言 2D 游戏引擎。 https://github.com/hajimehoshi/ebiten 引擎的贡献者依旧在积极维护&#xff0c;是一个兼具学习 & 娱乐的项目&#xff01; 为此我也用这个…

数据结构-线性表-应用题-2.2-11

1)算法的基本设计思想&#xff1a; 分别求两个升序序列的中位数a,b 若ab&#xff0c;则a或b即为所求中位数 若a<b&#xff0c;则舍弃A中较小的一半&#xff08;中位数偏小&#xff0c;往后面找&#xff09;&#xff0c;同时舍弃序列B中较大的一半&#xff0c;两次舍弃长度…

meshlab: pymeshlab保存物体的横截面(compute planar section)

一、关于环境 请参考&#xff1a;pymeshlab遍历文件夹中模型、缩放并导出指定格式-CSDN博客 二、关于代码 本文所给出代码仅为参考&#xff0c;禁止转载和引用&#xff0c;仅供个人学习。 # pymeshlab需要导入&#xff0c;其一般被命名为ml import pymeshlab as ml# 本案例所…

C++ | Leetcode C++题解之第74题搜索二维矩阵

题目&#xff1a; 题解&#xff1a; class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int m matrix.size(), n matrix[0].size();int low 0, high m * n - 1;while (low < high) {int mid (high - low) / 2 l…

YOLOv8的训练、验证、预测及导出[目标检测实践篇]

这一部分内容主要介绍如何使用YOLOv8训练自己的数据集&#xff0c;并进行验证、预测及导出&#xff0c;采用代码和指令的两种方式&#xff0c;参考自官方文档&#xff1a;Detect - Ultralytics YOLOv8 Docs。实践篇不需要关注原理&#xff0c;只需要把流程跑通就行&#xff0c;…

白色或类白色的粉末/固体,DOTA-Ala-Ala-Tyr-COOH,是一种具有特定氨基酸序列的多肽,具有良好的稳定性和溶解性

一、试剂信息 英文名&#xff1a;DOTA-Ala-Ala-Tyr-COOH&#xff0c;DOTA-AAY-OHCAS号&#xff1a;N/A分子式&#xff1a;C31H47N7O12分子量&#xff1a;709.74结构式&#xff1a; 纯度标准&#xff1a;≥95%包装规格&#xff1a;1g&#xff0c;5g&#xff0c;10g&#xff08…

Selenium——获取元素和操纵元素的方法

1、获取元素的方法 1、通过id获取 element wd.find_element(By.ID,"id")2、通过classname获取 elements wd.find_elements_by_class_name("plant") for element in elements:print(element.text)3、通过tagname获取元素 elements wd.find_elements_…

SpringBoot2 仿B站高性能前端+后端项目(wanjie)

SpringBoot2 仿B站高性能前端后端项目(完结) Spring Boot 2 仿B站高性能前端后端项目&#xff1a;打造高效、稳定、可扩展的应用 在当今的互联网时期&#xff0c;网站的性能、稳定性和可扩展性成为了权衡一个项目胜利与否的关键要素。本文将引见如何运用 Spring Boot 2 构建一…

AIGC-3D数字人技术:高效助推各行业数字化水平升级

从“互联网”到“人工智能”&#xff0c;数字员工作为一种全新的交互形式&#xff0c;对企业有着重要的作用&#xff0c;企业、品牌通过数字人的AI语音交互、AI播报等核心功能&#xff0c;可以有效推动企业提升数字水平。 作为3D、AI虚拟数字人技术服务商及方案提供商&#xff…

鸿蒙内核源码分析(工作模式篇) | CPU的七种工作模式

本篇说清楚CPU的工作模式 工作模式(Working mode) 也叫操作模式&#xff08;Operating mode&#xff09;又叫处理器模式&#xff08;Processor mode&#xff09;&#xff0c;是 CPU 运行的重要参数&#xff0c;决定着处理器的工作方式&#xff0c;比如如何裁决特权级别和报告异…

【IP:Internet Protocol,子网(Subnets),IPv6:动机,层次编址:路由聚集(rout aggregation)】

文章目录 IP&#xff1a;Internet Protocol互联网的的网络层IP分片和重组&#xff08;Fragmentation & Reassembly&#xff09;IP编址&#xff1a;引论子网&#xff08;Subnets&#xff09;特殊IP地址IP 编址: CIDR子网掩码&#xff08;Subnet mask&#xff09;转发表和转发…

【verilog-语法】编译命令( compiler directives )

一、前言 编译器指令的范围是从它的出现的点延伸到处理的所有文件&#xff0c;直到另一个编译器指令取代它或处理结束。编所有的编译命令都有重音符 " "引出。在IEEE std1364-2005中共介绍了19条编译命令&#xff0c;这19条命令又可分为12组命令进行独立或组合使用…
最新文章