Cómo resolver «permiso denegado» al usar sudo con redirección en Bash


Mejor respuesta

I. ¿Qué es un programa Sudo?

El sudo es un programa y / para ser específico un tipo de comando que se usa en el shell del terminal respectivamente, que está diseñado específicamente para el Sistema operativo Unix y sus Sistemas operativos relacionados con la ayuda del cual se hacen varios tipos de programas para ejecutarse donde el usuario tiene acceso completo de los privilegios de administración y seguridad del sistema.

II. ¿Qué es un Bash?

El Bash es un tipo especial de lenguaje de comandos que se usa en el Unix Shell y también fue escrito por primera vez para que un software pueda ser reemplazado libremente por el Bourne Shell, y fue escrito por Brian Fox.Ahora, en la actualidad, el lenguaje de comandos BASH se usa ampliamente en los diversos Sistemas operativos Linux , Mac OS e incluso en Windows. Sistema como Windows 10.El símbolo $$ representa el ID de proceso de la instancia de shell actual.

III. ¿Cómo resolver el Problema de permiso denegado cuando se usa Sudo con redirección en Bash?

Entonces, depende del tipo de trabajo que se esté realizando con la ayuda del lenguaje de comandos. Este tipo de error puede ocurrir cada vez que alguien intenta editar los archivos principales que se encuentran dentro de la unidad principal del sistema. Entonces, para que funcione, se puede ejecutar toda la línea de comandos en el shell o sub-shell para que el directorio principal funcione con el sistema de redirección de archivos en el bash. Esto se puede lograr de la siguiente manera:

$ sudo sh - c "cd/home; du-s* |sort-rn > USAGE"

El archivo que no se encuentra en el directorio principal también se puede redirigir con la ayuda del Bash, aquí usaremos el comando echo también, que se puede lograr como:

temp = $ (example\_temp\_file)

echo "*This is an example code*"> $temp

sudo cp $temp/file/.... // (Here comes the file location)

Ahora, si uno no quiere que la redirección sea nula y sin ninguna razón, donde no explícita subshell se involucrará, pero en cambio una subshell implícita funcionará bien, y además con la ayuda de este comando, uno puede recrear el archivo completo desde cero porque el stdin se ejecuta en la línea de comandos con la ayuda del comando sudo Por lo tanto, se puede crear de la siguiente manera:

echo bytes | sudo dd in=outfile

Este era el único camino, ahora si uno quiere ir con el otro enfoque, primero uno tiene que convertirse en administrador o usuario raíz y luego ingresar al sistema, y ​​luego iniciar sesión:

sudo -i

Ahora, uno puede usar sudo así como los comandos echo para redirigir exitosamente, lo cual se puede lograr de la misma manera:

sudo bash -c "echo Y> /sys/module/..... // (the rest command depends on what type of task one has to perform, the upper part will remain same, just add the file location after "module/", to whatever one needs to redirect or the respective task to be performed or completed.

Entonces, eso es todo. Esto debería resolver con éxito el Problema de permiso denegado cuando se usa Sudo con Redirección en Bash. ¡Espero que ayude!

Gracias por leer ✍️

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *