4

公司内U盘不能写入的解决方案

 3 years ago
source link: https://lesofn.com/archives/jie-jue-gong-si-nei-u-pan-bu-neng-xie-ru-de-wen-ti
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一、背景

因为安全原因,公司的电脑安装了安全软件,开启启动后就把U盘写权限关闭了,博主长期挂载移动硬盘使用,对日常使用造成很大困扰。本文提供两种思路,可实现公司内电脑U盘的读写。

注:本文只针对windows。

二、方法1:手动修改本地组策略

点击windows键,输入gpedit.msc,打开本地组策略编辑器,依次找到:计算机配置--> 管理模板 --> 系统 --> 可移动存储访问。找到:可移动磁盘:拒绝写入权限,如果是已开启状态,则编辑改为未配置或已禁用即可实现U盘写入。如果还是不行,把U盘拔掉重新插入即可。

image-20210208161208393.png

三、方法2:虚拟器映射smb远程访问

上面方法1对于临时写入够用了, 如果想挂载U盘或移动硬盘长期使用,每次开机启动都要重新配置一遍,很是麻烦。由于公司内安全软件是管理员权限开启启动,不能阻止它将本地组策略中的可移动磁盘:拒绝写入权限给开启。那有什么办法可以绕过这个权限呢?

答案就是虚拟机,开机启动时把U盘挂载到虚拟中,然后共享samba给宿主机,开启读写权限,宿主机就可以正常读写U盘中的内容了。

博主安装的是VirtualBox虚拟机。第一步当然是安装软件及系统,推荐安装debian最小镜像,因为这个镜像包小而且安全性高。操作习惯和Ubuntu一样,详细安装过程及网络配置请参考其他文档。

1、安装VirtualBox扩展,启用USB3.0支持。

默认VirtualBox是不支持USB3.0的,需要安装扩展才能支持。

下载官网链接: https://www.virtualbox.org/wiki/Downloads

详细下载教程请参考: https://blog.csdn.net/qzhn_/article/details/86365917

安装扩展包教程参考: https://jingyan.baidu.com/article/3052f5a1b2dd39d6f21f862d.html

安装完成,打开虚拟机USB设备配置,出现USB3.0即表示安装成功

image-20210208163042492.png

2、挂载U盘到虚拟机

虚拟机关机,打开配置,按以下步骤添加USB设备,USB控制器选择USB3.0。

image-20210208163408809.png

启动虚拟机,输入命令:

sudo fdisk -l

出现硬盘即为映射成功,记住红框中的Device名称

image-20210208163231638.png

3、配置虚拟机启动挂载

默认硬盘是不会自动挂载的,通过以下步骤配置开机自动挂载。

(1)安装驱动:

sudo apt-get install ntfs-3g

(2) 编辑/etc/fstab, 再末尾加入如下内容就可以了,以下是我的配置

/dev/sdb1       /mnt/move       ntfs-3g defaults,locale=zh_CN.UTF-8     0       0

重启虚拟机,查看/mnt/move目录,看是不是正确列出U盘中的文件。

3、配置samba

Linux中安装samba配置项很多,一不小心就配置不对,这里推荐使用docker安装samba,我使用是的这个image: https://github.com/dperson/samba

(1)安装docker,推荐使用国内daocloud一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

(2)docker启动samba,并支持开机启动:

sudo docker run -d \
    --name samba \
    --restart unless-stopped \
    -p 139:139 \
    -p 445:445 \
    -v /mnt/move:/mount \
    -d dperson/samba \
    -u "youusername;yourpassword" \
    -s "移动硬盘;/mount/;yes;no;no;all;yourusername"

将命令中的用户名密码改成你自己的,执行启动,在宿主机的文件资源管理器中输入,192.168.56.101是我的虚拟机ip,查看自己的虚拟机ip使用命令:sudo ifconfig

\\192.168.56.101

提示出入用户名、密码。输入正确后进入弹出我们移动硬盘表示配置成功。

image-20210208164925982.png

然后可以右键“移动硬盘”,映射网络驱动器,即可当成本地磁盘使用。

4、配置虚拟机开机启动

右击VirtualBox中的虚拟机,点击创建桌面快捷方式。

image-20210208165241154.png

打开桌面,右击快捷方式,点最下面的属性,编辑“目标”栏,配置成headless模式。即不打开VirtualBox,直接无界面启动虚拟机。将下面中VirtualBox路径和虚拟机ID改成你自己的,并保存。

"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "{7a1f224f-af3f-4850-bc39-20f76d83db83}" --type headless

最后一步,将此快捷方式移动到,即可开启启动虚拟机。

C:\Users\<your name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

四、总结

本文提供了两种解决公司内U盘不能写入的方法,第一种适合临时使用,第二种适合长期挂载U盘使用。你还有什么更好的方法吗,欢迎讨论。

本文作者: 木小丰 ,美团Java高级工程师,不定期分享软件研发过程中的实践、思考。

本文链接: https://lesofn.com/jie-jue-gong-si-nei-u-pan-bu-neng-xie-ru-de-wen-ti

公共号:Java研发

u6ZvUzI.jpg!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK