如何为用户提供RTC sysfs


0

在Armbian,我已经能够为用户提供GPIO系统 gpio 使用untructions的组 这是第一篇文章 这很有效。这对我的无特权用户成功运行。

现在我试图为RTC sysfs做同样的事情而没有运气。

我尝试过的是大多数步骤 这个帖子 到他们编辑rules.d文件的地方:没有 /sys/devices/soc.0 在我的设备上。相反,我加入了他 gpio* 命令列表,这一行:

chown -R root:gpio /sys/class/rtc && chmod -R 770 /sys/class/rtc;\

这似乎不起作用。即使我手动执行这些命令并确认rtc文件夹树是root用户:具有770权限的gpio,它仍然不起作用(权限被拒绝的非特权用户)。

$ cat /sys/class/rtc/rtc1/since_epoch # this works!
$ echo 10 > /sys/class/rtc/rtc1/since_epoch # permission denied

对不起,我刚刚意识到RTC的sysfs似乎是只读的。现在我的问题转移到,如何通过sysfs设置硬件时间? (或者,如何从用户空间设置硬件时间?)

Answers:


0

这是我最后的问题“如何从用户空间设置硬件时间?”的答案。

最近我了解到了 sudoers,这似乎是与击败su权利相关的一切的通用解决方案。

visudo 作为根。这是编辑的快捷方式 sudoers。别担心,它不会启动 vi,但是你的默认编辑器(除非那个 vi )。使用此而不是手动编辑 /etc/sudoers 导致更改在关闭时应用,并在必要时发出警告和错误。

我还不是一个sudoers向导(手册页长度只有50页),但我最后将其添加到最后:

Cmnd_Alias TIMEDATE=/usr/bin/timedatectl
pi ALL=(ALL) NOPASSWD: TIMEDATE

使用别名而不是直接指定命令允许您使用随机命令行参数。

然后用户 pi 可以执行 sudo timedatectl 没有被要求输入密码。 (注意: sudo 仍然是必需的。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.