ejecutar command específico sin sudo dentro de script que se ejecuta con sudo bash

Tengo un script bash que estoy ejecutando con sudo : sudo NewScript

Dentro del script, tengo un command git que no quiero ejecutar con sudo . Actualmente, dado que todo el script se ejecuta con sudo este command también se ejecuta con sudo y eso es lo que me gustaría suprimir.

¿Es posible o necesito ejecutar el script sin sudo y agregar sudo para cada command dentro del script que no sea el command git ?

Tenga en count que sudo ejecuta progtwigs como un usuario diferente , no necesariamente como root ; root es solo el pnetworkingeterminado. Por lo tanto, su objective probablemente no sea ejecutar su command git específico sin sudo , sino ejecutarlo como un usuario diferente al rest.

Si quiere que su command git sea ejecutado por un usuario codificado, el usuario, simplemente ponga

 sudo -u the_user <your git command> 

en su script (esto no le solicitará su contraseña cuando el script se ejecuta como root).

Si no conoce al usuario con anticipación, más bien quiere que el command git sea ​​ejecutado por quien haya llamado a sudo newScript uso de la sudo newScript

 sudo -u $SUDO_USER <your git command> 

en cambio (gracias a @thatotherguy por esa pista).

Un enfoque para usar es cambiar a los privilegios de usuario normales usando su y ejecutarlo dinámicamente que realmente cambiar el acceso.

Ejecute los commands git con los privilegios $USER normales dentro del script.

 su - "$USER" -c "git_command1; git_command2;" 

La bandera -c para pasar commands al shell, de acuerdo con la página del man su ,

-c, –command = command Pasa el command al shell con la opción -c.