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
...
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
Tags root date busybox not-root-user