GNU/Linux >> Znalost Linux >  >> Linux

Přidání řádku do souboru hosts, získání oprávnění odepřeno při použití sudo - Mac

To proto, že echo je spuštěn jako root, ale shell ve skutečnosti provádí přesměrování. Aby to fungovalo, musíte vytvořit nový shell:

sudo -- sh -c "echo test >> /etc/hosts"

Edit:Neviděl jsem fakt, že > přesměrovává díla; Nedokážu to vysvětlit.


Spíše než spuštěním echo přes přesměrování, které bude spuštěno jako váš aktuální uživatel, ne jako root, protože echo se spouští ve vašem příkladu, použijte tee, jak navrhuje Steve Buzonas

 echo 'test' | sudo tee -a /etc/hosts

Sudo je nyní aplikováno na příkaz tee. '-a' se připojí k souboru

Tím bude také výstup T na standardní výstup. Pokud nechcete, aby se ve vašem terminálu zobrazovalo „test“, přidejte také:> /dev/null na konec tohoto řádku.


Linux
  1. Jak extrahovat soubor tar.gz v Linuxu pomocí příkazového řádku

  2. Získejte „povolení odepřeno“ při přesměrování výstupu Sudo Echo „xyz“ do souboru?

  3. Vytvářejte soubory pomocí příkazového řádku v Linuxu

  1. Jak se vyhnout varovné zprávě „jsou stejný soubor“ při použití cp v Linuxu?

  2. Připojte řádek do souboru /etc/hosts pomocí skriptu shellu

  3. Jak načíst poslední řádek textového souboru do proměnné pomocí Bash?

  1. Jak vložím text do 1. řádku souboru pomocí sed?

  2. Kopírování souboru pouze v případě, že je novější než cíl

  3. Proč se mi při spuštění ssh-add odepírá oprávnění?