GNU/Linux >> Znalost Linux >  >> Debian

Debian – Kam mám vložit Sudo do tohoto příkazu?

Tato otázka zde již obsahuje odpovědi :Uzavřeno před 9 lety.

Možný duplikát:
Přesměrování stdout do souboru, do kterého nemáte oprávnění k zápisu

echo "some words" >> /etc/apt/source.list

permission denied

sudo echo "some words" >> /etc/apt/source.list

také povolení k vrácení odepřeno

Pak si myslím, že operátor append je další příkaz, měl bych před něj dát sudo, tak to zkusím

echo "some words" >> sudo /etc/apt/source.list

také povolení k vrácení odepřeno

jak mám tento úkol provést?

Přijatá odpověď:

sudo sh -c 'echo "some words" >> /etc/apt/source.list'

Důvod, proč sudo echo „některá slova“>> /etc/apt/source.list nefunguje, je ten, že sudo zvyšuje oprávnění příkazu ‚echo‘ a ne přesměrování.

Přesměrování>> způsobí, že se aktuální shell vytvoří/připojí k souboru. Selže, protože váš shell k tomu nemá oprávnění.

Důvod, proč moje odpověď funguje, je ten, že celou věc (echo a přesměrování) spouštíte v novém shellu, který byl sudo’d. sh -c ... vyvolá nový shell a spustí příkaz uvedený v tomto subshell. Sudo před spuštěním tohoto subshell se spustí s eskalovanými oprávněními.

Druhý příklad sudo nedává smysl, protože sudo vyžaduje příkaz ke spuštění, a to není to, co předáváte. Vsadím se, že nyní máte v místním adresáři soubor s názvem sudo s obsahem „nějaká slova“. Klidně to smažte 🙂


Debian
  1. Jak zobrazit tabulku směrování sítě v Debianu 10

  2. Jak obnovit heslo pro sudo v Debianu

  3. Kde je příkaz drahokamu v RHEL6?

  1. Rychle vytvořte textový soubor prostřednictvím terminálu Debian

  2. Debian – Nalezení balíčku, který poskytuje daný příkaz?

  3. Jak opravit příkaz Sudo, který nebyl nalezen v Debianu 10

  1. Jak používat příkaz sudo v Linuxu

  2. Jak vypnout Debian 10 z příkazového řádku a GUI

  3. Jak používat příkaz Who v Debianu 10