Definir hora com clock_settime sem ter acesso root

0

Eu escrevi um programa C que sincroniza o tempo com o tempo de um receptor GPS. O computador está executando o Ubuntu 16.04 LTS. O programa usa clock_settime (CLOCK_REALTIME, & timespec) para definir a hora. O programa é executado em um script bash, e eu não posso usar sudo como o script é iniciado pelo uso de um arquivo de desktop. Alguém tem uma ideia?

NB: O script está executando vários programas, que eu não quero executar como root

    
por Morten Skovgaard 28.02.2018 / 16:51

1 resposta

0

As capacidades podem ser uma solução.

Antes de executar o programa, você pode adicionar um CAP_SYS_TIME ao seu programa como o próximo.

sudo setcap CAP_SYS_TIME+ep  /path/to/program

Exemplo no docker

sys@2a2618c145ed:~$ ./a_pr.out
clock_gettime : 1534915500.689625314
clock_gettime : 1534916100.690310388
clock_gettime : 1534915500.690651299
sys@2a2618c145ed:~$ ./test.run
clock_gettime : 1534915504.139181778
Error : clock_settime -1
clock_gettime : 1534915504.139337010
Error : clock_settime -1
clock_gettime : 1534915504.139341290
sys@2a2618c145ed:~$ filecap $(pwd)
file                 capabilities
/jeremy/a_pr.out     sys_time
sys@2a2618c145ed:~$

Addtionally, gostaria de recomendar a página abaixo: Permitir um usuário específico ou acesso root do grupo sem senha para / bin / date

O próximo pode ser melhor.     sudo setcap CAP_SYS_TIME + ei / caminho / para / programa

    
por 22.08.2018 / 07:24

Tags