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

287
Mark Jeronimus

В 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 имеет root-права: 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 вообще из пространства пользователя?)

0

1 ответ на вопрос

0
Mark Jeronimus

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

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

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

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

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

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

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

Похожие вопросы