204 votes

Alias non disponibles lors de l'utilisation de sudo

J'ai joué avec les alias aujourd'hui et j'ai remarqué que les alias ne semblent pas être disponibles lors de l'utilisation de l'outil de gestion des données. sudo :

danny@kaon:~$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

danny@kaon:~$ ll -d /
drwxr-xr-x 23 root root 4096 2011-01-06 20:29 //

danny@kaon:~$ sudo -i
root@kaon:~# ll -d /
drwxr-xr-x 23 root root 4096 2011-01-06 20:29 //
root@kaon:~# exit
logout

danny@kaon:~$ sudo ll -d /
sudo: ll: command not found

Y a-t-il une raison pour laquelle vous ne pouvez pas utiliser d'alias tout en utilisant sudo ?

1voto

WinEunuuchs2Unix Points 91128

Si vous tapez sudo -i et s'élever à une invite sudo ( # ), vous n'aurez pas les alias ou les fonctions que vous aimez utiliser.

Pour utiliser vos alias et vos fonctions au niveau des # l'invite, l'utilise :

sudo cp "$HOME"/.bashrc /root/.bashrc

Où "$HOME" est développé en "/home/YOUR_USER_NAME".

1voto

nano.galvao Points 1253

@WinEunuuchs2Unix : $PWD se développe vers le "répertoire de travail actuel". Je pense que vous voulez $HOME .

De plus, dans la plupart des cas, il est probablement préférable d'avoir un fichier .bashrc distinct pour la racine. En fait, j'en ferais un vrai fichier dans le répertoire /root , un lien logiciel vers celui-ci dans le répertoire personnel de l'utilisateur (par ex, .bashrc_root ), et la source de l'utilisateur. .bashrc fichier. Si, par la suite, ce compte d'utilisateur privilégié n'est plus présent, l'utilisateur root .bashrc est toujours disponible pour les autres utilisateurs.

0voto

J'ai une solution différente dans laquelle il n'est pas nécessaire d'ajouter sudo comme alias. J'utilise Linux Mint 17.3 mais cela devrait être assez similaire à Ubuntu.

Lorsque vous êtes à la racine, alors le .profile est exécuté depuis son répertoire d'origine. Si vous ne savez pas quel est le répertoire personnel de root, vous pouvez vérifier avec :

sudo su
echo $HOME

Comme vous pouvez le voir, la maison de root es /root/ . Vérifiez son contenu :

cd $HOME
ls -al

Il devrait y avoir un .profile fichier. Ouvrez le fichier et ajoutez les lignes suivantes :

if [ "$BASH" ]; then
    if [ -f ~/.bash_aliases];then
        . ~/.bash_aliases 
    fi
fi

Fondamentalement, ce que ce script bash fait est de vérifier pour un fichier appelé .bash_aliases . Si le fichier est présent, il l'exécute.

Sauvegarder le .profile et créez vos alias dans .bash_aliases . Si le fichier d'alias est déjà prêt, copiez-le à l'emplacement suivant

Relancez le terminal et vous êtes prêt à partir !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X