Diferença entre su -c e runuser -l -c

4

Eu preciso executar algumas linhas de comando como usuário em particular em um script de shell.

Eu encontrei (pelo menos) dois caminhos:

su user -c 'command'

runuser -l user -c 'command'

Existe uma diferença significativa entre esses dois comandos?

    
por Getz 07.04.2016 / 14:25

1 resposta

4

Como já foi escrito em comentários, o runuser é basicamente um su que não usa a pilha do PAM.

Para fornecer mais detalhes, conforme a postagem no blog de Dan Walsh - um dos autores de runuser - parece que O runuser é realmente compilado a partir das fontes su, exceto com a pilha PAM excluída da compilação. A diferença é que usar o runuser ao invés do su pode prevenir alguns erros do SELinux. Esse post também diz isso:

Whenever an service is running as root and wants to change UID using the shell it should use runuser.

When you are logged in to a shell as a user and want to become root, you should use su. (Or better yet sudo)

    
por 12.11.2016 / 12:00