如何在 Ubuntu 16.04 启动时“chmod 777”串行端口 /dev/ttyACM0?

如何在 Ubuntu 16.04 启动时“chmod 777”串行端口 /dev/ttyACM0?

许多博客建议我输入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 上将您的用户添加到组的正确方法是。检查是否效果更好。您还可以尝试查看您的用户是否真的对该文件具有读取权限,如果没有,则会收到错误。$USERdialoutdialoutsudo usermod -aG $USER dialoutcat /dev/ttyACM0t, youPermission denied

如果您的用户是该dialout组的成员,但您的应用程序仍然无法访问该设备,则请确保您的应用程序确实以您的用户身份运行,而不是由于启动脚本等原因而以其他用户身份运行。还要确保阻止您的应用程序运行的确实是该文件,而不是其他文件。您需要提供更多信息。

相关内容