我弄乱了 /dev/tty 所有权和权限

我弄乱了 /dev/tty 所有权和权限

我正在刷新 Flipper Zero Wifi 开发板,我需要 dialout 组拥有 /dev/ttyACM0...

现在的问题是我已经尝试恢复这些内容,制作 chown root:tty /dev/tty* 和 chmod a+0666 权限,并且,嗯......它以只读模式连接 USB。

我可以使用安装命令和 rw 模式轻松重新安装笔式驱动器,但具有讽刺意味的是,我现在无法更新我的 Flipper Board,所以我需要帮助......要么确保一切都按预期进行,并确保任何设备自动连接读写模式。

我正在使用 archlinux (顺便说一句)

我很感激任何帮助

答案1

几乎所有现代 Linux 发行版都有 udev,这意味着/dev文件系统是基于 RAM 的:每次重新启动时都会从头开始重建,因此您不能只需chmod命令即可进行持久更改。您必须为此设置 udev 规则或自定义启动脚本。

换句话说:只需重新启动,所有更改/dev都会自动恢复为标准。

要持久更改设备节点权限,您需要创建udev规则。每个发行版都有自己的首选方式来处理设备权限。问题标签表示 Arch Linux,所以我建议您参考ArchWiki 关于 udev 和权限的优秀文章

例如,Arch 授予普通用户访问具有特定vendor_id:product_id数字的 USB 设备的首选方法是创建一个/etc/udev/rules.d/71-device-name.rules包含以下内容的文件:

子系统==“usb”,ATTRS {idVendor}==“vendor_id”,ATTRS {idProduct}==“product_id”,MODE =“0660”,TAG + =“uaccess”

(当然,将vendor_id和替换为实际值......您可以在输出中看到它们)。product_idlsusb

上述udev规则将允许本地登录的用户访问指定的设备。如果您希望设备可用于全部用户,您可以省略该TAG+="uaccess"部分并将 MODE 值更改为MODE="0666"。如果你想将它分配给dialout组(尽管Arch似乎不推荐使用此方法),你可以添加GROUP="dialout")。

答案2

如果您想要永久更改与热插拔设备(例如 USB)关联的设备的权限,那么您需要制定 udev 规则。这个答案可能有帮助:https://raspberrypi.stackexchange.com/questions/135927

如果您只想对一台设备执行此操作,则需要包含该答案中所示的序列号。如果您想对整个设备类别执行此操作,则可以省略序列号并包含设备类别或制造商或其他一些共享特征。

相关内容