许多博客建议我输入sudo adduser $USER dialout
,但它已经显示 已经$USER
是该组的成员dialout
,并且当我重新启动计算机时, 并/dev/ttyACM0
没有被赋予读/写权限。
crw-rw---- 1 root dialout 166, 0 Mar 22 13:53 /dev/ttyACM0
我不熟悉 Ubuntu 16.04,因此如果能得到任何帮助我都会很感激。
答案1
您不应该使任何文件(尤其是设备文件)在您的机器上可在全球范围内写入。这是一个巨大的安全漏洞。组权限策略在 Linux 内核中存在是有原因的。当您的用户确实是该dialout
组的成员时,那么您已经拥有该文件的读写权限。id
在命令行中键入以列出您的用户所在的所有组。dialout
在那个列表中吗?如果不在,那么您必须添加它。添加到组sudo adduser $USER dialout
应该没问题,但这是一个特定于 Ubuntu 的包装器,在 Linux 上将您的用户添加到组的正确方法是。检查是否效果更好。您还可以尝试查看您的用户是否真的对该文件具有读取权限,如果没有,则会收到错误。$USER
dialout
dialout
sudo usermod -aG $USER dialout
cat /dev/ttyACM0
t, you
Permission denied
如果您的用户是该dialout
组的成员,但您的应用程序仍然无法访问该设备,则请确保您的应用程序确实以您的用户身份运行,而不是由于启动脚本等原因而以其他用户身份运行。还要确保阻止您的应用程序运行的确实是该文件,而不是其他文件。您需要提供更多信息。