GNU/Linux >> Tutoriales Linux >  >> Linux

[Solucionado] bash:sudo:comando no encontrado

sudo , el comando más útil de Linux, ocasionalmente falta en varias distribuciones de Linux, sobre todo en contenedores docker y distribuciones ligeras de Linux.

sudo es una utilidad que permite a los usuarios ejecutar comandos con root acceso. Es el comando más útil y está incluido en casi todas las principales distribuciones de Linux. Sí, casi todos. Varias distribuciones de Linux, en particular las imágenes de la ventana acoplable, no incluyen el sudo paquete por defecto. Si ve el error bash: sudo: command not found simplemente significa que sudo no está instalado.

bash:sudo:comando no encontrado

En la mayoría de los casos, iniciar el administrador de paquetes e instalar sudo será suficiente. Sin embargo, la instalación de un nuevo paquete requiere el uso de root capacidades. Inicie sesión como usuario raíz e instale sudo .

Para Ubuntu o sus derivados

$ apt install sudo

Para Fedora o sus derivados

$ dnf install sudo

Para RHEL o sus derivados

$ yum install sudo

Para Arch Linux o sus derivados

$ pacman install sudo

Para imágenes Docker

Sin embargo, si no hay una cuenta raíz, como en el caso de numerosas imágenes acoplables, es posible que esto no sea posible. Cuando crea un contenedor acoplable a partir de una imagen acoplable, la imagen puede o no tener una root usuario. En ese caso, tendremos que crear una imagen personalizada con sudo pre instalado. No te preocupes, es fácil.

Crear una imagen Docker personalizada

Se requiere un Dockerfile para construir una imagen acoplable personalizada. Dockerfile se usa para definir todo en una determinada sintaxis, y el comando de compilación docker se usa para generar una imagen a partir de él. Por ejemplo, si desea crear un contenedor de Docker utilizando una imagen de Docker alojada en Docker Hub, podemos especificar en el Dockerfile esa imagen como la imagen base y pasar los comandos para instalar herramientas adicionales, es decir, sudo en nuestro caso.

Crear archivo Docker

touch Dockerfile

Abra el Dockerfile en su editor de texto favorito.

nano Dockerfile or gedit Dockerfile
# This is the base image we will use to create our custom docker image
FROM ubuntu:latest
 
#
# the maintainer of an image
LABEL maintainer="[email protected]"
 
#
# Install the tools (sudo)
RUN apt-get update && apt-get upgrade -y && apt install sudo tasksel -y

Usamos la etiqueta EJECUTAR en la tercera parte, que está marcada con "Instalar las herramientas", y cualquier comando después de EJECUTAR se ejecutará antes de generar nuestra imagen personalizada. Entonces, al escribir un comando aquí, podemos instalar cualquier paquete que deseemos. Si seguimos escribiendo comandos, incluso podemos activar un servidor completo.

Para obtener más información sobre Dockerfile, consulte la documentación oficial de Docker.

Guarde y cierre el Dockerfile. Ahora, abra la línea de comando y navegue hasta el directorio que contiene el Dockerfile y ejecute el siguiente comando:

sudo docker build -t image-name:tag .
Cambiar el nombre de la imagen:etiqueta con el nombre y la etiqueta que desees.

Recuerde que el comando de compilación docker solo acepta el directorio, no el Dockerfile. Si especifica en el comando Dockerfile, obtendrá el error:unable to prepare context: context must be a directory: /home/sandy/Dockerfile . Por lo tanto, debe estar dentro del directorio que contiene Dockerfile y usar . para especificar el directorio actual o la ruta completa al directorio que contiene Dockerfile.

Y eso es. docker build comenzará a construir el comando. Tomará unos segundos. Una vez hecho esto, nuestra imagen acoplable personalizada se guarda en nuestra caché de imágenes local. Ahora podemos usar image-name:tag para crear un contenedor docker que tenga sudo preinstalado.


Linux
  1. ¿Comando alternativo de actualización no encontrado?

  2. visudo:comando no encontrado

  3. sudoedit:comando no encontrado

  4. sudo:comando no encontrado

  5. rm:comando no encontrado

sudo:apt-add-repository:¿comando no encontrado?

id:comando no encontrado

w:comando no encontrado

df:comando no encontrado

du:comando no encontrado

sudo:python:comando no encontrado