首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux如何禁用 USB 存储设备

为了保护数据不被泄漏,我们使用软件和硬件防火墙来限制外部未经授权的访问,但是数据泄露也可能发生在内部。 为了消除这种可能性,机构会限制和监测访问互联网,同时禁用 USB 存储设备。...在本教程中,我们将讨论三种不同的方法来禁用 Linux 机器上的 USB 存储设备。所有这三种方法都在 CentOS 6&7 机器上通过测试。那么让我们一一讨论这三种方法。...方法 2:删除 USB 驱动 这种方法要求我们将 USB 存储的驱动程序(usb_storage.ko)删掉或者移走,从而达到无法再访问 USB 存储设备的目的。...要将 USB 存储列入黑名单,请使用 vim 打开/创建上述文件: $ sudo vim /etc/modprobe.d/blacklist.conf 并输入以下行将 USB 纳入黑名单: blacklist...usb-storage 就在就会被系统阻止加载,但这种方法有一个很大的缺点,即任何特权用户都可以通过执行以下命令来加载 usb-storage 模块, $ sudo modprobe usb-storage

9.6K10

Linux USB 设备驱动模型

Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....BUS/DEV/DRV 模型 "USB 接口"是逻辑上的 USB 设备,编写的 usb_driver 驱动程序,支持的是"USB 接口": USB 控制器或 Hub 识别出 USB 设备后,会创建、...接口函数 在 USB 设备驱动程序中,能使用USB 函数都在这个头文件里:include\linux\usb.h。...2.1 pipe 使用这些接口函数的主要目的是传输数据,传输数据的对象是 USB 设备里的某个 endpoint,这被称为 pipe: /* Create various pipes... */ #define...timeout); 2.3 异步传输函数 使用 URB 进行传输时,它是异步方式:需要先分配、构造、提交一个 URB("usb request block"),当传输完成后,它的回调函数被调用。

38840
您找到你想要的搜索结果了吗?
是的
没有找到

Linux USB 设备基础理论

通过扫描以下目录获取物理节点所有 USB 设备: /sys/bus/usb/devices/usb* /sys/bus/usb/devices/usb*/$busnum-* 从该文件系统收集某一个设备的主要信息如下...(该总线的第几台设备) speed: 速率 bDeviceClass: 设备类型 idVendor: 设备的生产商ID,由USB设备生产商向USB-IF官方来统一管理和申请 idProduct: 该生产商生产的产品编号...# 定位某一个 USB 设备的方法有两种: busnum + devnum idVendor + idProduct 设备类型bDeviceClass# 类代码 用法 描述 00h 设备描述符 Use...参考文献# USB设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol By USB 中文网 USB设备描述符中的idVendor、idProduct和bcdDevice...By USB 中文网 USB 硬件设备的序列号 By IBM 注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

27930

USB总线-Linux内核USB3.0设备控制器复合设备USB gadget configfs分析(七)

早期的USB只支持单一的gadget设备使用场景较为简单,随后加入了composite framework,用来支持多个function的gadget设备,多个function的绑定在内核中完成,若需要修改...Linux3.11版本引入了基于configfs的usb gadget configfs。...usb gadget configfs重新实现了复合设备层,使用者可以在用户空间配置和组合内核的function,灵活的构成USB复合设备,极大了提高了工作效率。...初始化复合设备驱动数据结构usb_composite_driver,使用usb gadget configfs时,使用者可以直接在用户空间绑定function驱动,不需要bind和unbind函数,因此...如果使用os_string,则需要分配os_string requset。 调用UDC驱动接口usb_gadget_udc_start使能USB设备控制器。

9.4K20

arm linux利用alsa驱动并使用usb音频设备

一.背景: arm linux的内核版本是3.13.0 二.准备工作 添加alsa驱动到内核中,也就是在编译内核的时候加入以下选项: ?...接下来就重新编译内核即可 三.交叉编译alsa-lib和alsa-utils (alsa-utils是一系列的音频设备控制工具,而alsa-lib是alsa-utils依赖的库,所以先将alsa-lib...alsa-lib 3.2交叉编译alsa-utils 四.将三编译好的库及工具都拷贝至arm开发板(笔者通常直接将编译好的都压缩好之后再复制到开发板进行解压,以避免直接复制造成软链接无法复制的情况) 五.使用...,注意fat32是不支持软链接的,此时需要直接复制一个aplay并将名称改为arecord: cp aplay arecord 总结 以上所述是小编给大家介绍的arm linux利用alsa驱动并使用...usb音频设备 ,希望对大家有所帮助!

6K31

USB设备状态

USB设备插上主机时,主机就通过一系列的动作来对设备进行枚举配置(配置是属于枚举的一个态,态表示暂时的状态),这些态如下: 1、接入态(Attached):设备接入主机后,主机通过检测信号线上的电平变化来发现设备的接入...; 2、供电态(Powered):就是给设备供电,分为设备接入时的默认供电值,配置阶段后的供电值(按数据中要求的最大值,可通过编程设置); 3、缺省态(Default):USB在被配置之前,通过缺省地址...0与主机进行通信; 4、地址态(Address):经过了配置,USB设备被复位后,就可以按主机分配给它的唯一地址来与主机通信,这种状态就是地址态; 5、配置态(Configured):通过各种标准的USB...请求命令来获取设备的各种信息,并对设备的某此信息进行改变或设置; 6、挂起态(Suspended):USB总线处于空闲状态的话,该设备就要自动进入挂起状态,在进入挂起状态后,总的电流功耗不超过280UA...是 是 是 是 是 不 设备已连接至接口,已加电. 并被复位.且分配了唯一地址,并被配置.设备功能可被使用.

1.6K20

USB总线-Linux内核USB3.0设备控制器复合设备之legacy方式分析(八)

1.概述 在usb gadget configfs引入到内核之前,内核都使用硬编码的方式实现复合设备,无法在用户空间动态修改和绑定不同的function驱动,若要修改,则需要修改内核代码,重新编码,非常不方便...(audio_driver); // 注册audio_driver [include/linux/usb/composite.h] #define module_usb_composite_driver...3.总结 从上面可以看出,legacy方式定义的复合设备很不灵活,使用者无法在用户空间动态配置复合设备和绑定的function驱动。...若要使用音频设备,则只能通过g_audio驱动构造复合设备,若使用USB虚拟网卡,则只能通过g_ether驱动构造复合设备,若需要多个功能的USB设备,则需要重新构造复合设备,编码定义usb_composite_driver...USB gadget configfs不需要在内核中预先定义好复合设备使用者在用户空间配置,内核会自动生成所需的复合设备,并和对应的function驱动绑定。

3.7K40

USB总线-Linux内核USB3.0设备控制器驱动框架分析(四)

目前最流行的是使用基于Composite和configfs实现的USB gadget configfs,可在用户空间灵活的配置USB设备。UDC驱动直接访问硬件,控制USB设备USB主机之间的通信。...2.Gadget Function驱动 Linux内核的USB Gadget Function驱动都在drivers/usb/gadget/function/目录下,有通讯设备类(Communication...,所有复合设备使用该数据结构,无需驱动实现。...Linux 3.11版本引入了USB Gadget Configfs。在用户层可以通过暴漏出来的API定义USB Gadget设备的任意功能和配置,极大的方便了USB复合设备的配置和使用。...除端点0外,USB设备驱动还会使用其他的端点,这些端点数据结构挂到ep_list链表中。speed表示USB设备控制器当前的速度。max_speed表示USB设备控制器最大的速度。

9.3K20

如何在Ubuntu上手动挂载取消配置USB设备

不幸的是,情况并非总是如此; 有时,您需要手动将USB挂载到系统才能访问它。 在本教程中,我们将介绍如何在系统中手动安装和卸载USB驱动器。...如何在Ubuntu上安装USB驱动器 让我们按照以下步骤手动将USB驱动器安装到您的系统: 步骤1:将USB驱动器插入可用端口。...步骤2:在终端应用程序中以sudo身份运行以下命令,以检查系统上可用的存储设备及其使用的文件系统: $ sudo fdisk -l 您的USB设备通常会在输出结尾列出,主要是sdb...使用文件管理器访问USB设备 如何在Ubuntu上卸载USB驱动器 如果您手动安装了USB,最好甚至手动卸载它。...按照本文中介绍的步骤操作后,您将能够成功地在系统上安装和卸载USB存储设备。如果您的系统无法自动使USB可供访问和使用,这将对您有所帮助。

2.6K00

USB总线-Linux内核USB3.0设备控制器之UDC驱动分析(六)

前者通过UDC设备的名称匹配,通常是configfs配置的USB Function驱动使用,后者直接匹配udc_list链表中的第一个UDC驱动,通常是legacy类型的USB Function驱动使用...(struct usb_gadget_driver *driver); 底层的USB设备控制器驱动(dwc3 gadget)使用usb_add_gadget_udc函数将自身加入到Core UDC Framework...使能ep0_out和ep0_in硬件端点,设备枚举阶段需要使用端点0,因此需要先使能。...若主机向设备请求数据,而此时设备没有数据要发送,则设备端点会在数据信息包中返回NAK。主机从不发送NAK,等时传输不使用NAK。...端点”能够响应请求“是指能够通信且因此不能被设为设备。等时传输不使用STALL。超高速控制端点不使用功能失败。

8.4K20

USB设备如何应用于工业控制系统?

USB总线以高效、便捷的特性得到广泛的应用,但是USB本身并不是专为工业控制开发的。工业控制具有实时性强,安全要求高,现场干扰大等特点,因此USB需要进行工业设计才能保证工业应用的可靠性。...USB-5800工业特性解析 工业USB防误拔锁紧器:USB产品为方便连接,采用了弹片连接方式,但在工业控制场合,这种方式存在误碰,误拔的风险,使用工业USB防误拔锁紧器,对usb控制模块进行螺丝锁紧,...内置看门狗:工业现场有时会出现不可预知的强烈干扰,可能会造成USB设备的软件的短暂死机。...普通USB设备(如USB DISK)会要求使用者重新插拔设备来解决,但在工业场合很多是无人值守的 GRADE 3浪涌和突波保护 5、2500V隔离:通道与USB、菊花链(HUB)与USB之间2500VDC...9、LED指示灯:实时显示IO状态、USB上行/下行通讯状态。 10、USB3.0总线:提供高达5Gbit/s USB-5800系列IO模块

72320

linux usb端点

一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...但是需要注意其中的一个特殊端点--端点0,每个USB设备必须要有一个端点0,其作用为对设备枚举和对设备进行一些基本的控制功能,端点0也被称为控制端点。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...端点0,是设备的默认控制端点,在设备上电后就存在并可以使用,在Set Config之前所有的传输都是通过端点0传输的。

9.8K30

如何使用usbsas安全地读取不受信任的USB大容量存储设备

该工具基于Rust语言开发,并且支持在GNU/Linux上运行。 功能介绍 1、从不受信任的USB设备读取文件(不使用uas、USB_storage和文件系统等内核模块)。...支持的文件系统有FAT、exFat、ext4、NTFS和ISO9660; 2、使用远程防病毒软件分析文件; 3、将新文件系统上的文件复制到受信任的USB设备,支持的文件系统有 FAT、exFAT...和NTFS; 4、将文件上传到远程服务器; 5、支持制作USB设备镜像; 6、擦除USB设备内容; usbsas架构 1、Web客户端/服务器:作为usbsas的主程序,可以部署一个安全的...USB文件传输中转站; 2、Fuse实现:使用usbsas以只读模式挂载USB设备; 3、Python:usbsas可以和Python搭配使用,并使用脚本将数据从一台设备拷贝到另一台设备;...内核模式 usbsas最大的一个优势就是在用户空间中运行,因此Linux内核不能有usb_storage和uas模块。

1.7K20

C# 获得设备usb信息

本文告诉大家如何获得设备usb来进行判断是否有哪些usb和找不到usb可能是什么。...需要在项目右击引用,点击程序集,搜索 System.Management 然后安装他 然后使用下面的代码就可以获得设备usb 请看代码 static List<(string DeviceID...} collection.Dispose(); return devices; } 如果需要判断是否存在某个 usb...,就通过 pid vid 判断,判断的方法是拿PNPDeviceID字符串比较 参见:c# 获取移动硬盘信息、监听移动设备的弹出与插入事件 - Chris Cheung - 博客园 如果发现找不到 usb...,可能是在开机的时候进行找usb,一般需要开机之后很久才会把所有的设备添加,所以如果找不到,就看开机的时间,如果太短,那么可能是因为程序太快去查。

2K30

如何USB 设备不显示安全删除硬件弹出选项

如果此时插入的是一个无线网卡,也就是 USB 无线 wifi 设备,此时如果逗比点了弹出 802.11 设备那么就不能再使用无线上网了 如果我是一个硬件供应商,如何让我的设备不会显示弹出安全删除硬件弹出选项...从 Overview of the Removable Device Capability可以知道一个 USB 设备是需要声明自己支持 Removable 的才可以在右下角使用安全删除硬件弹出选项 The...DEVICE_CAPABILITIES 从 Container IDs Generated from the Removable Device Capability 可以知道,在即插即用功能将会使用到这个功能...硬件回复的消息请看 DEVICE_CAPABILITIES (wdm.h) 在 PnP 询问USB设备,此时USB设备返回 DEVICE_CAPABILITIES 里面可以设置 Removable 项说明此设备支持移除...也就是想要自己的 USB 设备不能被移除,那么就声明不支持移除 以下是 DEVICE_CAPABILITIES 定义 typedef struct _DEVICE_CAPABILITIES { USHORT

2.8K30
领券