web-dev-qa-db-fra.com

Comment utiliser ZSH lorsque j'utilise les commandes Sudo mais pas en tant que shell racine par défaut?

Donc, j'aimerais garder bash comme Shell par défaut pour root.

Mais, je préférerais utiliser zsh, mon shell, lorsque je lance les commandes Sudo, et que Sudo exécute également le fichier .zshrc dans/root.

À des fins de test, j'ai créé un alias dans mes /root/.zshrc et ~/.zshrc:

alias test1='echo "Test OK"'

Maintenant, quand je lance Sudo su enter zsh enter test1 enter

J'ai eu le résultat attendu: Test OK

Cependant, toutes ces commandes donnent: test1: command not found

Sudo test1
Sudo su -c 'zsh -c test1'
Sudo -E zsh -c 'test1'
Sudo ZDOTDIR=/root/.zshrc test1
Sudo ZDOTDIR=/root/.zshrc zsh -c 'test1'
Sudo ZDOTDIR=/root/.zshrc zsh -c 'source /root/.zshrc && test1'

J'ai trouvé cette question sur askubunt , mais je pense que cela est davantage lié à celui-ci sous Unix et Linux .

Cependant, aucun de ces messages ne m'aide.

Ce que je veux réaliser en final est de créer un alias simple qui pourrait remplacer Sudo lorsque je souhaite utiliser zsh avec son fichier /root/.zshrc et préfixer la commande à exécuter.

Des allusions?

3
aklmie

Je ne suis pas un utilisateur zsh, mais Sudo zsh -c test1 échoue car le shell n'a pas lu votre fichier .zshrc. Essaye ça:

Sudo zsh -ic test1

Cela devrait indiquer à zsh qu'il s'agit d'un shell interactif, alors sourcez le fichier .zshrc.

3
glenn jackman