【信创】Linux终端禁用USB存储 _ 统信 _ 麒麟 _ 方德

原文链接:【信创】Linux终端禁用USB存储 | 统信 | 麒麟 | 方德
Hello,大家好啊!今天给大家带来一篇关于在Linux终端下禁用USB存储设备的文章。禁用USB存储设备可以提高系统的安全性,防止未经授权的人员将数据拷贝到外部存储设备或从USB设备导入恶意软件。本文将介绍如何通过修改系统配置禁用USB存储,确保系统的安全。欢迎大家分享转发,点个关注和在看吧!关注公众号回复“USB”,获取文章脚本。

禁用USB存储的几种方法

在Linux系统中,可以通过多种方法禁用USB存储设备。以下几种方法可以根据不同的需求选择使用:

通过modprobe禁用USB存储模块。

通过udev规则阻止USB存储设备的挂载。

通过设置blacklist禁用USB存储驱动程序。

1.查看系统信息

pdsyw@pdsyw1024:~/Desktop$ cat /etc/os-release 
NAME="Kylin"
VERSION="银河麒麟桌面操作系统V10 (SP1)"
VERSION_US="Kylin Linux Desktop V10 (SP1)"
ID=kylin
ID_LIKE=debian
PRETTY_NAME="Kylin V10 SP1"
VERSION_ID="v10"
HOME_URL="http://www.kylinos.cn/"
SUPPORT_URL="http://www.kylinos.cn/support/technology.html"
BUG_REPORT_URL="http://www.kylinos.cn/"
PRIVACY_POLICY_URL="http://www.kylinos.cn"
VERSION_CODENAME=kylin
UBUNTU_CODENAME=kylin
PROJECT_CODENAME=V10SP1
KYLIN_RELEASE_ID="2303"
pdsyw@pdsyw1024:~/Desktop$ uname -a
Linux pdsyw1024 4.19.71-42-kr990 #39-KYLINOS SMP PREEMPT Wed Jun 5 10:46:59 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
pdsyw@pdsyw1024:~/Desktop$ 	

2.查看CPU信息

pdsyw@pdsyw1024:~/Desktop$ lscpu
架构:           aarch64
CPU 运行模式:   32-bit, 64-bit
字节序:         Little Endian
CPU:             8
在线 CPU 列表:  0-7
每个核的线程数: 1
每个座的核数:   2
座:             3
厂商 ID:        ARM
型号:           0
型号名称:       HUAWEI Kirin 990
步进:           r1p0
CPU 最大 MHz:   2861.0000
CPU 最小 MHz:   554.0000
标记:           fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp
                  cpuid asimdrdm lrcpc dcpop asimddp
pdsyw@pdsyw1024:~/Desktop$ 

3.编写USB存储移除脚本

pdsyw@pdsyw1024:~/Desktop$ vim setup-usb-autoremove.sh 
pdsyw@pdsyw1024:~/Desktop$ 
pdsyw@pdsyw1024:~/Desktop$ cat setup-usb-autoremove.sh 
#!/bin/bash
# Step 1: 创建自动移除的脚本
cat << 'EOF' | sudo tee /usr/local/bin/remove-usb.sh > /dev/null
#!/bin/bash
# 提取传递的设备节点
device_path="/sys$DEVPATH"
# 查找设备并解除绑定
if [ -e "$device_path/driver/unbind" ]; then
    basename $device_path | tee $device_path/driver/unbind
fi
EOF
# 赋予脚本可执行权限
sudo chmod +x /usr/local/bin/remove-usb.sh
# Step 2: 创建 udev 规则
cat << 'EOF' | sudo tee /etc/udev/rules.d/99-usb-autoremove.rules > /dev/null
ACTION=="add", SUBSYSTEMS=="usb", ATTR{bInterfaceClass}=="08", RUN+="/usr/local/bin/remove-usb.sh"
EOF
# Step 3: 重载 udev 规则
udevadm control --reload-rules
pdsyw@pdsyw1024:~/Desktop$

这个脚本的目的是自动设置一个机制,当插入 USB 存储设备时,系统会立即检测并自动移除该设备。脚本通过创建一个自动移除脚本、配置 udev 规则,以及重载规则来实现这个功能。以下是脚本的详细解释:

# Step 1: 创建自动移除的脚本
cat << 'EOF' | sudo tee /usr/local/bin/remove-usb.sh > /dev/null
#!/bin/bash
# 提取传递的设备节点
device_path="/sys$DEVPATH"
# 查找设备并解除绑定
if [ -e "$device_path/driver/unbind" ]; then
    basename $device_path | tee $device_path/driver/unbind
fi
EOF

这部分代码会在系统的 /usr/local/bin/ 目录下创建一个名为 remove-usb.sh 的脚本。

脚本中使用 D E V P A T H 环境变量,它会由 u d e v 在 U S B 设备插入时自动传递。 DEVPATH 环境变量,它会由 udev 在 USB 设备插入时自动传递。 DEVPATH环境变量,它会由udevUSB设备插入时自动传递。DEVPATH 是设备路径。

该脚本会查找对应 USB 存储设备的路径并解除绑定(也就是从系统中移除设备)。通过 basename $device_path | tee $device_path/driver/unbind 来执行这个过程,basename 提取设备名,tee 将设备名写入到 unbind 文件以解除绑定。

sudo chmod +x /usr/local/bin/remove-usb.sh 

这部分代码将给刚刚创建的 remove-usb.sh 脚本赋予可执行权限,使其能够被 udev 调用并执行。

# Step 2: 创建 udev 规则
cat << 'EOF' | sudo tee /etc/udev/rules.d/99-usb-autoremove.rules > /dev/null
ACTION=="add", SUBSYSTEMS=="usb", ATTR{bInterfaceClass}=="08", RUN+="/usr/local/bin/remove-usb.sh"
EOF

这里会创建一个 udev 规则文件 /etc/udev/rules.d/99-usb-autoremove.rules。

udev 是 Linux 下的设备管理器,它可以检测到设备的插入/移除,并执行相应的操作。

ACTION==“add” 表示规则会在检测到设备插入时触发。

SUBSYSTEMS==“usb” 限定该规则只应用于 USB 设备。

ATTR{bInterfaceClass}==“08” 限定规则只匹配 USB 存储设备(大容量存储类设备,bInterfaceClass 为 08 对应的是大容量存储设备)。

RUN+=“/usr/local/bin/remove-usb.sh” 表示当插入符合条件的设备时,执行前面创建的 remove-usb.sh 脚本。

# Step 3: 重载 udev 规则
sudo udevadm control --reload-rules

这段代码会重载 udev 规则,使新添加的规则立即生效。

udevadm control --reload-rules 是 udev 的管理命令,它会重新读取所有的规则文件,以确保新添加的规则在设备插入时生效。

4.编写USB存储恢复识别脚本

pdsyw@pdsyw1024:~/Desktop$ vim setup-usb-autoadd.sh 
pdsyw@pdsyw1024:~/Desktop$ 
pdsyw@pdsyw1024:~/Desktop$ cat setup-usb-autoadd.sh 
#!/bin/bash
# Step 1: 移除脚本
rm  -rf  /usr/local/bin/remove-usb.sh
# Step 2: 移除 udev 规则
rm  -rf  /etc/udev/rules.d/99-usb-autoremove.rules 
# Step 3: 重载 udev 规则
udevadm control --reload-rules
pdsyw@pdsyw1024:~/Desktop$ 

这个脚本的作用是清理之前设置的自动移除 USB 设备的机制,具体解释如下:

# Step 1: 移除脚本
rm -rf /usr/local/bin/remove-usb.sh

这部分代码使用 rm -rf 命令删除 /usr/local/bin/ 目录下的 remove-usb.sh 脚本。

remove-usb.sh 是之前创建的用于移除 USB 存储设备的脚本。通过删除它,系统将不再执行该脚本来移除 USB 设备。

# Step 2: 移除 udev 规则
rm -rf /etc/udev/rules.d/99-usb-autoremove.rules

这部分代码删除 /etc/udev/rules.d/ 目录下的 99-usb-autoremove.rules 文件。

这个文件是之前创建的 udev 规则文件,它规定了当插入 USB 存储设备时,系统会执行 remove-usb.sh 脚本。删除该文件后,udev 将不再针对 USB 设备执行移除操作。

# Step 3: 重载 udev 规则
udevadm control --reload-rules

这部分代码使用 udevadm control --reload-rules 命令重载 udev 规则。

这是为了确保删除的 99-usb-autoremove.rules 文件立即生效。如果不重载规则,系统可能仍然会按照旧的规则工作,直到重启或手动重载规则。

5.测试USB存储移除脚本

pdsyw@pdsyw1024:~/Desktop$ sudo bash setup-usb-autoremove.sh 
输入密码
pdsyw@pdsyw1024:~/Desktop$

6.插入U盘不识别

7.测试USB存储恢复识别脚本

pdsyw@pdsyw1024:~/Desktop$ sudo bash setup-usb-autoadd.sh

8.插入USB识别

通过本文的介绍,您已经了解了如何在Linux终端下禁用USB存储设备。通过禁用USB存储模块或配置udev规则,可以有效地防止未经授权的USB存储设备接入系统,提升系统的安全性。如果您觉得这篇文章有用,请分享和转发,同时别忘了点个关注和在看,以便未来获取更多实用的技术信息和教程。感谢大家的阅读,我们下次再见!

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

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

相关文章

基于微信小程序+Java+SSM+Vue+MySQL的点餐平台系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSSMVueMySQL的点餐平台系统【附源码文档…

嵌入式-----汇编语言

一.ARM汇编语言程序格式 ARM汇编语言是以段(section)为单位来组织源文件的。段是相对独立的、具有特定名称的、不可分割的指令或者数据序列。 段又可以分为代码段和数据段,代码段存放执行代码,数据段存放代码运行时需要用到的数据。一个ARM源程序至少需要一个代码段,大的程序…

macos 系统文件操作时提示 Operation not permitted 异常解决方法 , 通过恢复模式 开启 /关闭 SIP方法

在macos系统中操作系统文件时提示 Operation not permitted 这个异常, 原因是因为在macos 10.11以上版本中默认启用了 SIP( System Integrity Protection )机制对系统文件进行保护, 要解决这个问题我们需要关机, 然后进入mac的恢复模式 : 在按电源键开机的同时, 一直按住 co…

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目&#xff1a; 题解&#xff1a; class Solution { public:static const int MASK1 1 << 7;static const int MASK2 (1 << 7) (1 << 6);bool isValid(int num) {return (num & MASK2) MASK1;}int getBytes(int num) {if ((num & MASK1) 0) …

哈希表如何避免冲突

系列文章&#xff1a; 1. 先导片--Map&Set之二叉搜索树 2. Map&Set之相关概念 3. 哈希表如何避免冲突 目录 1.概念 2. 冲突-概念 3. 冲突-避免 3.1 冲突-避免-哈希函数设计 3.2 冲突-避免-负载因子调节 4. 冲突-解决 4.1 冲突-解决-闭散列 4.1.1 线性探…

RMAN Backup Job is Completed Netbackup NBU

RMAN Backup Job is Completed But RMAN Sessions are Not Released in Database When Using Netbackup (Doc ID 2903139.1)​编辑To Bottom In this Document Symptoms Changes Cause Solution APPLIES TO: Oracle Database - Enterprise Edition - Version 19.8.0.0.0 and …

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质…

YOLOv8+Deepsort+PyQt+GUI 语义分割+目标检测+姿态识别 三者合一(集成于一套系统)综合视觉分析系统

综合视觉分析系统 技术栈&#xff1a; YOLOv8&#xff1a;用于目标检测&#xff0c;是一个快速且准确的目标检测框架。DeepSORT&#xff1a;用于目标跟踪&#xff0c;结合了深度学习特征提取和卡尔曼滤波器来预测目标轨迹。GUI&#xff1a;提供一个直观易用的图形用户界面&am…

云计算和传统IT相比,有哪些优势?

云计算相比于传统的IT基础设施&#xff0c;具有以下一些显著的优势&#xff1a; 成本效益&#xff1a; 云计算通常采用按需付费模式&#xff0c;用户只需为实际使用的资源支付费用&#xff0c;避免了高昂的前期硬件投资和维护成本。 弹性计费方式使得企业可以根据业务需求灵活调…

汽车免拆诊断案例 | 捷豹 E-type怠速不稳定

故障现象 一辆3.8E型直列6缸的捷豹&#xff0c;该车的故障原因表现为怠速不稳定&#xff0c;转速不均匀&#xff0c;以及在节气门全开&#xff08;WOT工况&#xff09;时“回火”和加速踏板不能及时提速。这是该车型一个值得关注的典型案例。车主表示&#xff0c;几年前&#…

C++ STL 适配器

系列文章目录 模板特例化&#xff0c;偏特化&#xff0c;左右值引用 https://blog.csdn.net/surfaceyan/article/details/126794013 C STL 关联容器 https://blog.csdn.net/surfaceyan/article/details/127414434 C STL 序列式容器(二) https://blog.csdn.net/surfaceyan/arti…

基于准静态自适应环型缓存器(QSARC)的taskBus万兆吞吐实现

文章目录 概要整体架构流程技术名词解释技术细节1. 数据结构2. 自适应计算队列大小3. 生产者拼接缓存4. 高效地通知消费者 小结1. 性能表现情况2. 主要改进3. 源码和发行版 概要 准静态自适应环形缓存器&#xff08;Quasi-Static Adaptive Ring Cache&#xff09;是taskBus用于…

STM32F407VET6开发板RT-Thread MSH 串口的适配

相关文章 STM32F407VET6开发板RT-Thread的移植适配 环境 STM32F407VET6 开发板&#xff08;魔女&#xff09;&#xff0c;http://www.stm32er.com/ Keil MDK5&#xff0c;版本 5.36 串口驱动 RT-Thread 通过适配 串口驱动&#xff0c;可以使用 MSH shell 当前手动搭建的 …

详细分析linux中的MySql跳过密码验证以及Bug(图文)

目录 1.问题所示2. 基本知识3. 解决方法3.1 跳过验证Bug3.2 设定初始密码 1.问题所示 发现密码验证错误&#xff0c;遗失密码 2. 基本知识 停止MySQL服务&#xff1a;sudo systemctl stop mysql 以跳过权限表模式启动MySQL&#xff1a;sudo mysqld_safe --skip-grant-tables …

论文解读 | ACL2024 Outstanding Paper:因果指导的主动学习方法:助力大语言模型自动识别并去除偏见...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 点击阅读原文观看作者直播讲解回放&#xff01; 作者简介 孙洲浩&#xff0c;哈尔滨工业大学SCIR实验室博士生 概述 尽管大语言模型&#xff08;LLMs&#xff09;展现出了非常强大的能力&#xff0c;但它们仍然…

MATLAB-基于高斯过程回归GPR的数据回归预测

目录 目录 1 介绍 1. 1 高斯过程的基本概念 1.2 核函数&#xff08;协方差函数&#xff09; 1.3 GPR 的优点 1.4. GPR 的局限 2 运行结果 3 核心代码 1 介绍 高斯过程回归&#xff08;Gaussian Process Regression, GPR&#xff09;是一种强大的非参数贝叶斯方法&…

如何用GPU算力卡P100玩黑神话悟空?

精力有限&#xff0c;只记录关键信息&#xff0c;希望未来能够有助于其他人。 文章目录 综述背景评估游戏性能需求显卡需求CPU和内存系统需求主机需求显式需求 实操硬件安装安装操作系统Win11安装驱动修改注册表选择程序使用什么GPU 安装黑神话悟空其他 综述 用P100 PCIe Ge…

一台手机一个ip地址吗?手机ip地址泄露了怎么办

在数字化时代&#xff0c;‌手机作为我们日常生活中不可或缺的一部分&#xff0c;‌其网络安全性也日益受到关注。‌其中一个常见的疑问便是&#xff1a;‌“一台手机是否对应一个固定的IP地址&#xff1f;‌”实际上&#xff0c;‌情况并非如此简单。‌本文首先解答这一问题&a…

Linux_kernel移植rootfs10

一、动态更改内核 1、low level&#xff08;静态修改&#xff09; 【1】将led_drv.c拷贝到kernel/drivers/char/目录中 【2】修改当前目录下的Makefile文件 obj-y led_drv.o #将新添加的驱动文件加入到Makefile文件中 【3】退回kernel目录&#xff0c;执行make uImage …

C语言学习笔记 Day16(C10文件管理--下)

Day16 内容梳理&#xff1a; C语言学习笔记 Day14&#xff08;文件管理--上&#xff09;-CSDN博客 C语言学习笔记 Day15&#xff08;文件管理--中&#xff09;-CSDN博客 目录 Chapter 10 文件操作 10.5 文件状态 10.6 文件的随机读写 fseek()、rewind() &#xff08;1&…