GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo ejecutar una serie de comandos en una subcapa bash como otro usuario que usa sudo?

Ejecute un shell dentro de sudo :sudo bash -c 'whoami; whoami'

Puede usar cualquier carácter excepto ' dentro de las comillas simples. Si realmente desea tener una comilla simple en ese comando, use '\'' (que técnicamente es:fin literal de comillas simples, literal ' carácter, comienza el literal entre comillas simples; pero efectivamente esta es una forma de inyectar una comilla simple en una cadena literal entre comillas simples).


Puede pasar los comandos como entrada estándar en sudo'ed bash con un documento aquí:

sudo bash <<"EOF"
whoami
id
EOF

De esta manera, no hay necesidad de jugar con las comillas correctas, especialmente si tiene varios niveles, por ejemplo:

sudo bash <<"EOF"
whoami
echo $USER ~
sudo -u apache bash <<"DOF"
whoami
echo $USER ~
DOF
EOF

Produce:

root
root /root
apache
apache /usr/share/httpd

(Tenga en cuenta que no puede sangrar el terminador interno, tiene que estar solo en su línea. Si desea usar sangría en un documento aquí, puede usar <<- en lugar de << , pero luego debe sangrar con tabulaciones, no espacios).


por ejemplo prueba esto, lo probé:

sudo bash -c "cd /;ls;ls|grep o"

En este ejemplo, primero cambia dir a /root, luego enumera el directorio raíz y finalmente para el directorio raíz filtra solo los directorios que tienen un nombre con la letra 'o'.

Pero lo mejor es escribir un script que haga todo lo que necesita y proporcione un código de salida para todas las acciones complejas. Luego puede sudo script en lugar de un grupo de comandos individuales como el ejemplo anterior.


Linux
  1. ¿Cómo asignar un comando Vim para ejecutar comandos Bash según el sistema operativo?

  2. ¿Cómo ejecutar comandos en Gnuplot usando Shell Script?

  3. ¿Cómo puedo usar comandos con alias con xargs?

  4. ¿Cómo ejecutar el comando bash con privilegios sudo en Java?

  5. ¿Cómo ejecuto múltiples comandos cuando uso find?

Ejecute comandos como otro usuario a través de Sudo en Linux

Cómo controlar Vagrant Box usando comandos de Vagrant

¿Cómo puedo cambiar todos los archivos que pertenecen a un usuario a otro usuario?

¿Cómo ver el historial de comandos de otro usuario en Linux?

Cómo hacer ssh como otro usuario

¿Cómo permitir que el usuario ejecute un comando que contiene comillas en sudoers?