用户 root,组是 root,但最终从 /dev/ 更改所有权

用户 root,组是 root,但最终从 /dev/ 更改所有权

好的...所以我按照许多教程的指示使用 chown 和 chmod 来访问/dev/外围设备的一些文件。

chown 和 chmod 不会使其通过重新启动。这没关系。我看到的问题与无法操作/dev/目录文件有关,例如gpio和/或i2c,即使在使用 chmod 和/或 chown 后也能成功...

因此,我为当前用户设置命名方案,然后为该用户设置组,但仍然无法访问我的文件。我正在使用一台嵌入式计算机,其规范规定/dev/bone/为一些外围文件(如pwmuart和 )填写文件i2c

特殊之处/dev/在于,从内部控制文件/dev/不会受到命令权限和用户:使用 chown 和 chmod 添加的组的影响?

仍在尝试围绕 /dev/ 中的构建进行教育,而不使用 /sys/class/gpio/ 和/或 /sys/class/pwm/。

答案1

/dev/系统启动时会重新生成目录树。毕竟,您可能添加/删除了硬件。

许多设备访问问题都是权限问题,可以通过组成员身份更改来解决。

sudo journalctl --follow您可以通过观看连接设备来找到设备名称。或者ls -1 -l /dev >dev.before,连接设备,等待 10 秒ls -1 -l /dev >dev.after;diff dev.{before,after}

具体来说,如果ls -l 显示组权限(第二个“ rwx”三元组)为“ rw”(例如“ -rw-rw----”),则将自己添加到拥有该设备的组中将授予rw访问权限。

就是这样:

# change to your device name 
device="/dev/YourDevice"
sudo adduser $USER $(stat -c "%G" $device)

这允许您成为可以使用该设备的组的成员身份rw但还有一步。

要使所有进程成为新组的成员,请注销并登录。小组成员资格是按时间设立的login

要在新组中创建单个进程(用于测试,在注销/登录之前):

newgrp $(stat -c "%G" $device)  

或者,只需键入组名称。看man newgrp

相关内容