
Ich verwende häufig sudo -s -H
, möchte aber nach der Ausführung Aliase haben. Wie geht das?
Erklärung: Ich melde mich beim Server als Benutzer1 an (der sich in sudoers befindet). Dieser Benutzer hat Aliase in .bash_aliases
:
alias rm='rm -i'
jetzt führe ich aussudo -s -H
Und jetzt rm
ist kein Alias vorhanden – es entfernt also Dateien ohne Aufforderung.
Wie kann man es ändern?
(ich sehe Beiträge mit alias sudo='sudo '
- aber es funktioniert nur mit der Ausführung eines Befehls sudo command
- nicht mitsudo -s -H
Antwort1
Sie müssen dieselben Aliase unter als Quelle angeben /root/.bashrc
.
Sie können dies auf zwei Arten tun:
Kopieren Sie
/home/user1/.bash_aliases
es nach/root/.bash_aliases
und fügen Sie Folgendes hinzu/root/.bashrc
:if [[ -f /root/.bash_aliases ]] then . /root/.bash_aliases fi
Quelle der
/home/user1/.bash_aliases
Datei/root/.bashrc
:if [[ -f /home/user1/.bash_aliases ]] then . /home/user1/.bash_aliases fi
Welche Lösung Sie wählen, hängt von Ihren persönlichen Vorlieben ab. Ich verwende Option 2, weil ich möchte, dass root dieselben Aliase usw. hat wie mein normaler Benutzer, und ich es auf diese Weise nur an einer Stelle pflegen muss (Sie könnten auch einen symbolischen Link zu /home/user1/.bash_aliases
in erstellen /root
, aber der Effekt wäre derselbe).
Wenn Sie Option 1 wählen, müssen Sie Ihre Aliase für beide separat pflegen user1
. root
Dies kann für Ihren Anwendungsfall geeignet sein, muss es aber nicht.