我正在开发一个 Bash 脚本,用于处理f3
大量 USB 驱动器的格式化和测试(使用 ),如下所示:
mkntfs -QF /dev/sdX
我过去只是以 root 身份运行该脚本:
sudo MyScript.sh
然而今天,在将该工具重新设计为模块化时,我意外地做了一些事情,每次运行该脚本时都会导致我的操作系统崩溃。各种应用程序关闭或中断,我无法再执行基本的命令行任务。谢天谢地,重启解决了一切,但这让我再次思考——也许我真的不应该以 root 身份运行这个脚本吗?
问题是 - 我需要执行一些限制普通用户的操作(例如对 /dev/ 中的设备字符文件的写访问权限)。
我该怎么做才能授予我的脚本精确的权限,并避免不幸的拼写错误擦除我的硬盘或破坏我的硬盘的可能性/dev/null
?
答案1
您可以添加一条udev
规则来匹配 USB 驱动器,并使它们可由您选择的组写入,然后在该组中运行脚本。
以下匹配项应识别可移动 USB 驱动器:
KERNEL=="sd*[!0-9]", ATTR{removable}=="1", SUBSYSTEMS=="usb"