para executar um determinado comando eu preciso usar
sudo -h -u someuser <somecommand>
para salvar um pouco da sanidade, criei um alias
alias somecommand='function _dm(){ sudo -u ubuntu somecommand $@; };_dm'
Isso funciona muito bem até que eu tente fazer algo sofisticado.
somecommand arg1 | xargs somecommand arg2
Isso me causa problemas, pois xargs não invoca o alias. É possível fazer isso funcionar de alguma forma?
Responder1
Contanto que seu alias esteja em seu
.bashrc
, você poderá fazer...|xargs bash -c somealias ...
Mais fácil é colocar seu alias em um script de shell. Faça
~/bin
, adicione-o ao seuPATH
, coloque o script e seu comando original funcionará.
Exemplo de script de shell:
#!/bin/bash
sudo -u ubuntu somecommand "$@"
Editar:esta respostasugere tentar #1 com bash -ic
em vez de bash -c
.