如何让用户可以使用 RTC sysfs

如何让用户可以使用 RTC sysfs

在 Armbian 中,我能够gpio使用这第一篇帖子并且成功了。这对于我的非特权用户来说成功了。

现在我尝试对 RTC sysfs 执行相同的操作,但没有成功。

我尝试过的大多数步骤来自这个帖子/sys/devices/soc.0直到他们编辑 rules.d 文件的位置:我的设备上没有。相反,我在gpio*命令列表下添加了以下行:

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

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

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

抱歉,我刚刚意识到 RTC 的 sysfs 似乎是只读的。现在我的问题变成了,如何通过 sysfs 设置硬件时间?(或者,如何从用户空间设置硬件时间?)

答案1

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

最近我了解了sudoers,这似乎是解决与侵犯人权有关的一切问题的通用解决方案。

以 root 身份运行visudo。这是编辑的快捷方式sudoers。别担心,它不会启动vi,但您的默认编辑器(除非 vi)。使用此功能而不是手动编辑/etc/sudoers会导致更改在关闭时应用,并且它会在必要时发出警告和错误。

我还不是一个 sudoers 专家(手册页有 50 页长)但我最终在最后添加了以下内容:

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

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

然后用户无需输入密码pi即可执行。(注意:仍然需要。)sudo timedatectlsudo

相关内容