我正在使用 Buildroot 为嵌入式设备构建 Linux Kernel 3.14.28。
在 /dev/
中,所有的 ttys 都是 root:root
而不是像标准 Linux 那样的 root:dialout
。因此,如果不以 root
身份登录,就无法访问任何 ttyX。
如何将 tty 组永久更改为 root:dialout
?我尝试使用 chown 命令更改它,但它在重新启动时再次变为 root:root
。
最佳答案
TL;DR:选择 mdev
作为您的设备管理器,并使用 tty
组而不是 dialout
.
内核的 devtmpfs
创建具有默认名称、所有者和权限的设备节点。它还会在创建节点时发送一个 uevent
,这允许 uevent 处理程序更改名称、所有权或权限,或者做任何它想做的事情。以前这被称为热插拔系统,但现在它更加通用。
Buildroot 提供三种 uevent 处理程序之间的选择:mdev
,它是 busybox 的一部分,eudev
,它是一个独立的 udev
分支,以及udev
是 systemd
初始化系统的一部分。这些处理程序配置有规则文件,这些文件指定在特定类型的设备出现时如何处理。
对于您的特定需求,mdev
是最佳选择,因为它非常简单、易于理解、不占用太多空间,并且默认配置就足够了。在 Buildroot 的菜单配置中,转到系统配置 → /dev 管理 并选择Dynamic using mdev。然后重建你的根文件系统。它现在将填充 mdev
二进制文件(busybox
的一部分)、启动它的初始化脚本和 /etc/mdev 中的默认规则文件。 session
。此默认文件包含:
tty[0-9]* root:tty 660
这意味着 tty
设备将把它们的组更改为 tty
并且它们的组读取和写入权限。因此,您只需确保登录用户属于 tty
组,并且 Bob 是您的叔叔即可。
如果默认的 mdev.conf
文件对您来说不够用(例如,如果您确实需要组为 dialout
),那么您可以创建一个文件系统覆盖,将package/busybox/mdev.conf
复制到/etc/mdev.conf
,并根据需要修改。可以找到有关 mdev.conf
格式的完整文档 in the busybox sources .
关于linux - 如何在 Linux 上更改 tty 组(使用 buildroot 构建),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30846176/