首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编辑latency_timer而没有根权限?

如何编辑latency_timer而没有根权限?
EN

Unix & Linux用户
提问于 2021-04-19 06:35:51
回答 1查看 421关注 0票数 0

在我的应用程序中,我需要将USB设备的latency_timer编辑为1,因为它会导致很大的通信延迟。根骄傲是必要的编辑它,但我想让普通用户做它。

latency_timer文件是:

代码语言:javascript
复制
/sys/bus/usb-serial/devices/ttyUSB0/latency_timer

它是644/root:root。目前,我需要在每次引导后编辑它的根优先级。

我认为有两种解决办法,这两种办法我都可以接受:

  1. 让普通用户拥有编辑latency_timer的权限。
  2. 在插入设备时,将系统设置更改为“始终设置为1”。

我该怎么做1或2?

(注意:“普通用户”属于dialout组,因此他们对设备具有常规的读写访问权限。)

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-04-24 09:09:32

一个简单的解决方案是使用方法1。

首先,创建一个名为/sbin/fix_usb_latency.sh的bash脚本:

代码语言:javascript
复制
#!/bin/bash
dev=ttyUSB0
if [ $# -ge 1 ];then
  dev=$1
fi
if [ -f /sys/bus/usb-serial/devices/$dev/latency_timer ] && [ `cat /sys/bus/usb-serial/devices/$dev/latency_timer` -gt 1 ];then
  echo "Fixing the latency issue of $dev..."
  echo 1 | sudo tee /sys/bus/usb-serial/devices/$dev/latency_timer
fi

然后,编辑/etc/sudoer,让用户或组在没有根优先级的情况下执行/sbin/fix_usb_latency.sh

代码语言:javascript
复制
$ sudo visudo

要给予用户akihikoy许可:

代码语言:javascript
复制
akihikoy ALL=PASSWD: ALL, NOPASSWD: /sbin/fix_usb_latency.sh

若要授予组拨号权限(%表示组):

代码语言:javascript
复制
%dialout ALL=PASSWD: ALL, NOPASSWD: /sbin/fix_usb_latency.sh

然后,此脚本的执行不会请求密码。

代码语言:javascript
复制
$ sudo /sbin/fix_usb_latency.sh ttyUSB0
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/645744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档