> ich hab in meiner /etc/bash.bashrc einige alias definiert. Unter
> anderem u für umount und m für mount.
>
> Diese Befehle werden auch brav ausgeführt, wenn ich entweder der
> user bin, oder mittels sudo -s superuser wurde.
> aber z.B. 'sudo m /backup' wird nicht ausgeführt, weil sich sudo
> beschwert "m" nicht zu kennen...
>
> Kann man sudo irgendwie beibringen, die Aliase auch tatsächlich zu
> wissen?
Nein. Aliase sind eine Spezialität der Shell. Aber man kann an dem
sudo-Aufruf so herumfummeln, dass es am Ende passt.
Du könntest ein Wrapperscript anlegen, das sich um den richtigen
Aufruf kümmert. Das Script kann ja ganz kurz "s" (wie Shell) heißen
oder "a" (wie Alias :-) oder "z" (wie "zur Sicherheit"...). Dieses
Script muss dann in den $PATH, damit es regulär gestartet werden
kann.
Das Script könnte dann etwa so aussehen:
#!/bin/bash
bash -c "shopt -s expand_aliases;. ~/.alias"$'\n'"$*"
Das funktioniert aus offensichtlichen Gründen nur für "harmlose"
Parameter. Sobald da irgendwie gequotet wird, geht das den Bach
runter. Wenn das nicht auftritt - prima. Ansonsten hieße es, die
Argumente einzeln so zu bearbeiten, dass alle ", ' und \ mit \
maskiert werden, die Ergebniss einzeln mit "" maskieren,
zusammenbauen und anstelle von $* übergeben. Dazu hatte ich jetzt
aber keine Lust :-)
X-Post & F'up2 dcous
CU
Hauke
--
http://www.hauke-laging.de/ideen/
Wie können 59.054.087 Leute nur so dumm sein?
>> aber z.B. 'sudo m /backup' wird nicht ausgeführt, weil sich sudo
>> beschwert "m" nicht zu kennen...
Ganz vergessen: Daraus wird dann:
sudo s m /backup