Как сделать RTC sysfs доступным для пользователя

В Armbian я смог сделать sysfs GPIO доступным для пользователей в gpio группа, используя инструкции в этом первом посте, и это работает. Это успешно сработало для моего непривилегированного пользователя.

Теперь я пытаюсь сделать то же самое для RTC sysfs без удачи.

То, что я пробовал, это большинство шагов от этого поста до того, где они редактируют файл rules.d: там нет /sys/devices/soc.0 на моем устройстве. Вместо этого я добавил под он gpio* Список команд, эта строка:

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

Это не похоже на работу. Даже если я выполняю эти команды вручную и подтверждаю, что дерево папок rtc является корневым:gpio с разрешениями 770, оно все равно не работает (отказано в праве непривилегированного пользователя).

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

Извините, я только что понял, что sysfs RTC, похоже, только для чтения. Теперь мой вопрос переходит на, как я могу установить время HW через sysfs? (В качестве альтернативы, как я могу установить время HW вообще из пространства пользователя?)

1 ответ

Решение

Это ответ на мой последний вопрос "как я могу установить время HW вообще из пространства пользователя?"

Недавно я узнал о sudoersчто, кажется, является универсальным решением для всего, что касается победы над правами.

Бежать visudo как корень. Это ярлык для редактирования sudoers, Не волнуйся, это не начнется vi, но ваш редактор по умолчанию (если это не vi). Используя это вместо ручного редактирования /etc/sudoers заставляет изменения быть примененными после закрытия, и это дает предупреждения и ошибки при необходимости.

Я еще не мастер sudoers (man-страница размером с 50 страниц), но в итоге я добавил это в конец:

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

Использование псевдонима вместо прямого указания команды позволяет использовать случайные аргументы командной строки.

Тогда пользователь pi может выполнить sudo timedatectl без запроса пароля. (нота: sudo все еще требуется.)

Другие вопросы по тегам