GNU/Linux >> Tutoriels Linux >  >> Linux

Ajout d'une ligne dans le fichier hosts, obtention d'une autorisation refusée lors de l'utilisation de sudo - Mac

C'est parce que echo est exécuté en tant que root, mais le shell est celui qui effectue réellement la redirection. Vous devez créer un nouveau shell pour que cela fonctionne :

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

Edit :je n'ai pas vu le fait que le > rediriger les travaux ; Je ne peux pas l'expliquer.


Plutôt que d'exécuter echo via une redirection qui sera exécutée en tant que votre utilisateur actuel, et non root car echo est exécuté dans votre exemple, utilisez tee comme le suggère Steve Buzonas

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

Le sudo est maintenant appliqué à la commande tee. Le '-a' s'ajoute au fichier

Cela produira également le té sur la sortie standard. Si vous ne voulez pas voir 'test' dans votre terminal ajoutez également :> /dev/null à la fin de cette ligne.


Linux
  1. Comment éviter le message d'avertissement "sont le même fichier" lors de l'utilisation de cp sous Linux?

  2. Ajouter une ligne au fichier /etc/hosts avec le script shell

  3. Comment lire la dernière ligne d'un fichier texte dans une variable à l'aide de Bash ?

  4. Comment insérer du texte à la 1ère ligne d'un fichier à l'aide de sed ?

  5. Copier un fichier uniquement lorsqu'il est plus récent que la destination

Utilisation du fichier de configuration SSH

Utilisation de Google Drive à partir de la ligne de commande Linux

Qui est le propriétaire du fichier si le fichier est créé à l'aide de la commande Sudo ?

Comment faire écho dans le fichier

Comment insérer une nouvelle ligne dans l'e-mail à l'aide de la commande linux mail ?

Comment ajouter à un fichier en tant que sudo?