web-dev-qa-db-fra.com

Exécutez -E sans sudo

Existe-t-il un moyen d'exécuter Sudo -E bash - sans la commande Sudo?

J'ai la commande curl -sL https://deb.nodesource.com/setup_13.x | Sudo -E bash - que je veux exécuter dans un conteneur Ubuntu où aucun Sudo n'existe. En l'exécutant avec Docker, je fournis le paramètre Docker -u root:Sudo pour que tout à l'intérieur s'exécute en tant que root.

La commande Sudo -E bash - échoue cependant, car Sudo n'existe pas. Existe-t-il un moyen d'exécuter simplement -E bash -?

3
Socrates

Le -E est une option de la commande Sudo, ne fait pas partie de la commande réelle que vous exécutez avec des privilèges élevés.

De man Sudo:

 -E, --preserve-env
             Indicates to the security policy that the user wishes to pre‐
             serve their existing environment variables.  The security
             policy may return an error if the user does not have permis‐
             sion to preserve the environment.

Donc, comme vous n'utilisez pas du tout Sudo, l'environnement ne sera pas modifié de toute façon. Vous n'avez pas besoin de remplacer cette option par quoi que ce soit. Juste

curl -sL https://deb.nodesource.com/setup_13.x | bash

(Btw. La fin - l'argument après bash n'a aucun effet, vous pouvez également l'omettre.)

S'il est conseillé en matière de sécurité d'exécuter directement du code non vérifié extrait d'une source en ligne en tant que root, c'est une autre question ...

6
Byte Commander