A situação. Estou depurando o ambiente de um usuário restrito que está relegado a um shell especial. Para fazer isso, preciso executar um comando como esse usuário em seu contexto completo usando o su da seguinte forma:
su - $user -c "echo hello world" --shell /bin/custom_shell
Obviamente, posso alterar o comando e os parâmetros do comando que / bin / custom_shell será executado, mas como adiciono um parâmetro com o qual o custom_shell será executado? Exemplo equivalente de adicionar um parâmetro "--debug":
root->su - $user
$user->/bin/custom_shell --debug --command "echo hello world"
Nota: o sudo não funcionará para isso, pois há muitas variáveis de perfil e alterações no diretório de trabalho que ocorrem durante o login. Daí a razão pela qual estou usando o su. Além disso, este é um problema estranho intermitente que eu preciso ser capaz de executar scripts e executar de outra forma, su - $ user e executar o comando manualmente pode funcionar .. No entanto, eu não tenho esse luxo.
Tags command-line bash su linux shell