GNU/Linux >> Znalost Linux >  >> Linux

[Opraveno] bash:sudo:příkaz nenalezen

sudo , nejužitečnější příkaz Linuxu, občas chybí v několika distribucích Linuxu, zejména v kontejnerech dockerů a odlehčených distribucích Linuxu.

sudo je nástroj, který umožňuje uživatelům spouštět příkazy s root přístup. Je to nejužitečnější příkaz a je součástí téměř všech hlavních distribucí Linuxu. Ano, skoro všechny. Několik linuxových distribucí, zejména obrázky dockerů, nedodává sudo balíček ve výchozím nastavení. Pokud se zobrazí chyba bash: sudo: command not found to jednoduše znamená, že sudo není nainstalován.

bash:sudo:příkaz nenalezen

Ve většině případů spustíte správce balíčků a nainstalujete sudo bude stačit. Instalace nového balíčku však vyžaduje použití root schopnosti. Přihlaste se jako uživatel root a nainstalujte sudo .

Pro Ubuntu nebo jeho deriváty

$ apt install sudo

Pro Fedoru nebo její deriváty

$ dnf install sudo

Pro RHEL nebo jeho deriváty

$ yum install sudo

Pro Arch Linux nebo jeho deriváty

$ pacman install sudo

Pro obrázky Docker

Pokud však neexistuje účet root, jako v případě mnoha obrazů dockeru, nemusí to být možné. Když vytvoříte kontejner dockeru z obrazu ukotvitelného panelu, obrázek může nebo nemusí obsahovat root uživatel. V takovém případě budeme muset vytvořit vlastní obrázek pomocí sudo předinstalovaný. Nebojte se, je to snadné.

Vytvořit vlastní obrázek Docker

K vytvoření vlastního obrazu dockeru je vyžadován Dockerfile. Dockerfile se používá k definování všeho v určité syntaxi a příkaz docker build se používá k vygenerování obrázku z něj. Pokud si například přejete vytvořit kontejner Docker pomocí obrázku Docker hostovaného na Dockeru Hub, můžeme v Dockerfile zadat tento obrázek jako základní obrázek a předat příkazy k instalaci dalších nástrojů, v našem případě sudo.

Vytvořit Dockerfile

touch Dockerfile

Otevřete Dockerfile ve svém oblíbeném textovém editoru.

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

Ve třetí části jsme použili štítek RUN, který je označen „Install the tools“ a jakýkoli příkaz po RUN bude proveden před vygenerováním našeho vlastního obrázku. Takže zadáním příkazu zde můžeme nainstalovat libovolný balíček, který si přejeme. Pokud budeme pokračovat v psaní příkazů, můžeme dokonce roztočit celý server.

Další informace o Dockerfile naleznete v oficiální dokumentaci dockeru.

Uložte a zavřete Dockerfile. Nyní otevřete příkazový řádek a přejděte do adresáře obsahujícího Dockerfile a spusťte následující příkaz –

sudo docker build -t image-name:tag .
Změňte image-name:tag s libovolným jménem a jmenovkou, kterou si přejete.

Pamatujte si, že příkaz sestavení dockeru přijímá pouze adresář, nikoli soubor Dockerfile. Pokud v příkazu zadáte soubor Dockerfile, zobrazí se chyba – unable to prepare context: context must be a directory: /home/sandy/Dockerfile . Takže musíte být v adresáři obsahujícím Dockerfile a použít . k zadání aktuálního adresáře nebo úplné cesty k adresáři obsahujícímu Dockerfile.

A to je vše. docker build začne sestavovat příkaz. Bude to trvat několik sekund. Po dokončení se náš vlastní obrázek dockeru uloží do místní mezipaměti obrázků. Nyní můžeme použít image-name:tag k vytvoření kontejneru dockeru, který má předinstalované sudo.


Linux
  1. Alternativní příkaz aktualizace nebyl nalezen?

  2. visudo:příkaz nenalezen

  3. sudoedit:příkaz nenalezen

  1. sudo:příkaz nenalezen

  2. rm:příkaz nenalezen

  3. mv:příkaz nenalezen

  1. Příkaz nenalezen v Bash Opraveno

  2. bash sh - příkaz nenalezen

  3. sudo:python:příkaz nenalezen