一、背景
因为安全原因,公司的电脑安装了安全软件,开启启动后就把U盘写权限关闭了,博主长期挂载移动硬盘使用,对日常使用造成很大困扰。本文提供两种思路,可实现公司内电脑U盘的读写。
注:本文只针对windows。
二、方法1:手动修改本地组策略
点击windows键,输入gpedit.msc,打开本地组策略编辑器,依次找到:计算机配置--> 管理模板 --> 系统 --> 可移动存储访问。找到:可移动磁盘:拒绝写入权限,如果是已开启状态,则编辑改为未配置或已禁用即可实现U盘写入。如果还是不行,把U盘拔掉重新插入即可。
三、方法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即表示安装成功
2、挂载U盘到虚拟机
虚拟机关机,打开配置,按以下步骤添加USB设备,USB控制器选择USB3.0。
启动虚拟机,输入命令:
sudo fdisk -l
出现硬盘即为映射成功,记住红框中的Device名称
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
提示出入用户名、密码。输入正确后进入弹出我们移动硬盘表示配置成功。
然后可以右键“移动硬盘”,映射网络驱动器,即可当成本地磁盘使用。
4、配置虚拟机开机启动
右击VirtualBox中的虚拟机,点击创建桌面快捷方式。
打开桌面,右击快捷方式,点最下面的属性,编辑“目标”栏,配置成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/archives/jie-jue-gong-si-nei-u-pan-bu-neng-xie-ru-de-wen-ti
公共号:Java研发