以普通(非 sudo)用户身份访问 Linux ethercat CoE 界面

问题描述 投票:0回答:1

我需要以普通(非 sudo)用户身份读取/写入 ethercat CoE 接口。 Linux 上有执行此操作的命令吗? 或者也许是一个 systemd 配置,就像 udev 规则一样工作,使 USB 设备可以在没有 sudo 访问权限的情况下进行读/写?

谢谢你。

interface sudo ethercat
1个回答
0
投票

您可以使用 setcap 命令更改访问 Ethercat 端口的可执行文件的功能。

$ sudo setcap cap_net_raw+ep /path/to/executable

然后,您可以以普通用户身份运行可执行文件。

要为启动脚本注册此命令(例如在 Ubuntu 中),请创建以下 systemd 服务文件。 $ sudo vim /etc/systemd/system/setcatp.service

文件内容应如下所示

[Unit]
Description=Set capabilities on executable that accesses Ethercat port
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/setcap cap_net_raw+ep /home/ubuntu/agv_ws/build/servo_controller/servo_controller/servo_controller
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

接下来,设置systemd

$ sudo systemctl daemon-reload
$ sudo systemctl enable setcap.service
$ sudo systemctl start setcap.service
$ sudo systemctl status setcap.service
© www.soinside.com 2019 - 2024. All rights reserved.