在 Linux 里,trigger 通常不是一种“文件权限”,而是和 udev 规则、systemd 服务、内核事件 相关的概念。你问的“trigger 权限如何设置”,常见有下面几种场景,我分别说明:
udev 规则文件一般放在:
/etc/udev/rules.d/
权限要求:
-rw-r--r-- root root
推荐设置:
sudo chown root:root /etc/udev/rules.d/xxx.rules
sudo chmod 644 /etc/udev/rules.d/xxx.rules
⚠️ 规则文件必须属于 root,否则 udev 不会加载。
sudo udevadm trigger
普通用户没有权限直接 trigger,需要:
sudo 组例如 /dev/ttyUSB0
在 udev 规则中设置:
KERNEL=="ttyUSB*", MODE="0666", GROUP="plugdev"
然后:
sudo udevadm control --reload
sudo udevadm trigger
/etc/systemd/system/
权限:
-rw-r--r-- root root
sudo chmod 644 xxx.service
sudo chown root:root xxx.service
sudo systemctl enable xxx.service
如果希望用户触发:
sudo setfacl -m u:username:rx /etc/systemd/system/xxx.service
或使用:
systemctl --user
例如:
/sys/class/xxx/trigger
权限由内核决定,通常:
-rw-r--r-- root root
普通用户无法写,需要:
sudo sh -c 'echo 1 > /sys/class/xxx/trigger'
⚠️ 不建议改 sysfs 权限,风险高。
常见做法:
sudoersusername ALL=(root) NOPASSWD: /usr/bin/udevadm trigger
trigger 本身没有“权限”可设,你能控制的是:
- udev / systemd 文件权限(root:root, 644)
- 谁来执行 trigger(root / sudo)
- trigger 后生成的设备权限(MODE / GROUP)
如果你能说一下:
我可以直接给你可复制的配置示例。