Ich hab ein paar aliases in der bashrc im benutzerordner erstellt. Soll einer davon mit sudo gestartet werden geht das nicht, ich vermute weil ich dafür die /etc/bash.bashrc ändern muss. Hab ich getan, nun kann ich die aber nicht neu einlesen. Bei 'sudo sources /etc/bash.bashrc' heisst es der Befehl source sei nicht vorhanden. Ohne sudo gab es zwar keinen Fehler, ich kann den Befehl aber weiterhin nicht mit sudo starten.
bashrc für root neu einlesen
Anmeldungsdatum: Beiträge: 1093 |
|
||
Anmeldungsdatum: Beiträge: 12067 |
Hallo! Für deinen Alias gibt es unter Ubuntu auch die ~/.bash_aliases. Eigentlich musst du auch gar nichts ändern und in deinem Homeverzeichnis auch kein bash source ~/.bashrc laufen lassen. Prüfe daher mit find ~ ! -user $USER -ls auf falsche Rechte im Homeverzeichnis. Kommt keine Ausgabe, ist alles gut. Ansonsten kann man die Rechte korrigieren. Ein Alias wie alias upd='sudo apt update && sudo apt full-upgrade && sudo apt autoremove' funktioniert ohne, dass man irgendwo etwas ändern muss. Wie sieht denn deine konkrete Befehlszeile aus? |
||
Moderator, Webteam
Anmeldungsdatum: Beiträge: 5350 |
Der Fehler lautet?
2. Bringt das nix, weil sudo die Umgebungsvariablen nicht an die aeussere Shell weitergibt. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 1093 |
Tippfehler, ich meinte 'source'. Ändert aber nichts. Bei sudo source /etc/bash.bashrc kommt sudo source /etc/bash.bashrc sudo: source: Befehl nicht gefunden Ohne 'sudo' kommt nichts, der Eingabeprompt wird nur Weiß.
Und wie müsste ich vorgehen damit das auch mit sudo geht? |
||
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 8628 Wohnort: Münster |
sudo startet einen Befehl (= ausführbare Datei), keinen Alias. Das, was Du vorhast, geht gar nicht. Du kannst mit sudo -i in eine root-Shell wechseln und dann einen Alias ausführen, der für den Benutzer |
||
Projektleitung
Anmeldungsdatum: Beiträge: 12834 |
Ich denke, die passende Lösung ist, die Aliase mit einem Ansonsten kannst Du noch mit |
||
Anmeldungsdatum: Beiträge: 990 |
alias upd='sudo apt update && sudo apt full-upgrade && sudo apt autoremove' Also ich finde diese Idee sinnvoll, solang wir nicht erfahren, was konkret gemacht werden soll und warum es mit so einem Alias nicht geht. Edit: Harter Tag. Ich glaube, das war auch der Vorschlag in rklms erstem Satz. ☺ |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 1093 |
Ich will genau das machen was du beschrieben hast, apt update, apt dist-upgrade, autoremove und clean. Das ganze hab ich einmal einfach so eingerichtet mit diesen 4 Befehlen mit sudo davor direkt in der ~/.bashrc. Dann nochmal wo ich eine kleine Info geschickt bekomme, das ganze aber in einem Shell-Script. In dem Script wird alles mit 'sudo' ausgeführt, in der .bashrc hatte ich aber hier das 'sudo' vergessen. Wenn etwas mehr herunterzuladen ist, kann es aber passieren, dass autoremove und clean nicht ausgeführt wird da ich das Passwort neu eingeben muss. Kann man für dieses Script das Passwort irgendwie länger "speichern", am besten so lange bis das Script komplett durchgelaufen ist? Wenn ich einmal im Terminal das Passwort eintippen musste, wird ja auch die nächsten Male keine Abfrage kommen bis eine Zeit x abgelaufen ist. |
||
Projektleitung
Anmeldungsdatum: Beiträge: 12834 |
Ich sehe folgende Lösungen:
Der Trick ist in Zeile 8, die sicherstellt, dass das Skript immer als "root" läuft - egal, welcher Nutzer es aufgerufen hat. |
||
Anmeldungsdatum: Beiträge: 12067 |
Alternativ kannst du auch mit visudo arbeiten und exakt diese eine Befehlszeile ohne Passwort ausführbar machen. |