我的脚本需要对 /dev/sdX 的写访问权限。如何避免以 root 身份运行它?

我的脚本需要对 /dev/sdX 的写访问权限。如何避免以 root 身份运行它?

我正在开发一个 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"

相关内容