Como configuro o busybox para permitir que um usuário não root defina a data?

4

Eu tenho um sistema embutido construído com caixa ocupada. Eu permito que um usuário chamado "app" baixe um programa / script para um diretório e ele será executado na inicialização.

O programa deve ter permissão para definir a data. É executado como usuário 'app'.

Como faço para definir o busybox para permitir que o "aplicativo" de usuário não root defina a data? Eu tentei adicionar a permissão suid: chmod u+s /bin/busybox.nosuid Mas isso não funciona. Também o busybox é muito anêmico sobre por que há versões nosuid e suid, mas aparentemente elas foram compiladas com diferentes aplicativos nelas. Não há 'sudo' no sistema.

root# which date
/bin/date
root# ls -l /bin/date
lrwxrwxrwx    1 root     root            19 Apr 22  2016 /bin/date -> /bin/busybox.nosuid
root# ls -l /bin/busybox.nosuid
-rwsr-xr-x    1 root     root            14 Apr 22  2016 /bin/busybox.nosuid
root# date
Thu Jan 15 03:43:24 CET 1970
root# date -s 10:30
Thu Jan 15 10:30:00 CET 1970
root# date
Thu Jan 15 10:30:01 CET 1970
root# su app
app$ date
Thu Jan 15 10:30:10 CET 1970
app$ date -s 11:00
date: can't set date: Operation not permitted
Thu Jan 15 11:00:00 CET 1970
app$ date
Thu Jan 15 10:30:21 CET 1970
    
por AllenKll 26.04.2016 / 18:18

1 resposta

6

Se você tiver a versão "suid" de busybox , você poderia tentar executar o comando date como root assim:

Arquivo /etc/busybox.conf :

...
[SUID]
date = ssx root.root
...
    
por 26.04.2016 / 18:36