Onde está o runuser?

2

Estou fazendo um trabalho inicial e preciso executar um executável como outro usuário. Nada extravagante como su fornece e nenhum dos contextos SELinux misturados que o acompanham. Uma rápida pesquisa na Internet recomenda runuser over su para esta tarefa, mas runuser não está em nenhum lugar no Ubuntu 13.10.

Devo estar usando su no Ubuntu - será inteligente o suficiente para evitar autorização total? Um trabalho resultante seria portável para outras distros, ou eu me depararia com problemas do SELinux?

Por fim, qual é a melhor maneira de alterar usuários em um trabalho iniciante?

Atualizar

Aparentemente, upstart > = 1.4 suporta setuid e setgid , mas eles são limitados porque afetam todos os scripts de trabalho pré- * / pós- *, não apenas o script / exec principal. Ainda seria bom ter uma maneira de descartar corretamente para outro usuário por um único comando. Eu considerei usar stop-start-daemon , mas ele se sobrepõe muito ao upstart e provavelmente fará com que expect se comporte de maneira estranha.

    
por Zenexer 23.11.2013 / 05:59

1 resposta

2

Existe um relatório de erros sobre este problema.

O trabalho sugerido em torno da limitação é criar trabalhos separados para lidar com as condições pré / pós enquanto estiver executando como root. Você precisaria configurar corretamente as condições de início / parada: A emulação de pré-estrofe de trabalho (pre-job.conf) teria que iniciar nas condições definidas atualmente para seu trabalho (main-job.conf), seu trabalho atual terá que ser executado em pré -trabalho iniciado, job emulando post stanza (post-job.conf) terá que iniciar no trabalho principal parado.

    
por Goran Miskovic 23.11.2013 / 17:09