ubuntuusers.de

Bash-Alias definieren für "sudo ..."

Status: Gelöst | Ubuntu-Version: Kubuntu 6.10 (Edgy Eft)
Antworten |

Andi_T.

Anmeldungsdatum:
24. März 2006

Beiträge: 113

Hallo,

damit der Befehl "vi" den VIM im Vim-Modus startet, habe ich mir als User einen Alias angelegt.

user@computer:~$ alias|grep vi
alias vi='vim'

Dieser Alias greift aber nicht, wenn ich "sudo vi dateiname" ausführe. VIM startet dann in dem (für mich unbenutzbaren) klassischen vi-Modus.
Auch wenn ich "alias vi='vim'" in die /root/.bashrc eintrage, ändert sich daran nichts.
Insgesamt scheinen Befehle, die mit "sudo" ausgeführt haben, keinen Bash-Alias zu kennen:

user@computer:~$ sudo alias
sudo: alias: command not found


Wie kann ich für einen Befehl, den ich mittels "sudo" aufrufen, einen Alias einrichten?
Konkret: Wie erreiche ich, dass "sudo vi dateiname" wie "sudo vim dateiname" behandelt wird?

Danke!

Andi

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

Aus man visudo:

There is a hard-coded list of editors that visudo will use set at compile-time that may be overridden via the editor sudoers
Default variable. This list defaults to the path to vi(1) on your system, as determined by the configure script. Normally,
visudo does not honor the VISUAL or EDITOR environment variables unless they contain an editor in the aforementioned editors
list. However, if visudo is configured with the --with-enveditor flag or the enveditor Default variable is set in sudoers,
visudo will use any the editor defines by VISUAL or EDITOR. Note that this can be a security hole since it allows the user to
execute any program they wish simply by setting VISUAL or EDITOR.


Bei mir meldet sich mcedit bei visudo - wahrscheinlich dank meiner Einstellung für /etc/alternatives/editor

ls -la /etc/alternatives/editor
lrwxrwxrwx 1 root root 22 2006-08-15 05:30 /etc/alternatives/editor -> /usr/bin/mcedit-debian

Lux Team-Icon

Avatar von Lux

Anmeldungsdatum:
10. November 2005

Beiträge: 5152

Wohnort: Grüt (Gossau ZH), Schweiz

Andi T. hat geschrieben:

Wie kann ich für einen Befehl, den ich mittels "sudo" aufrufen, einen Alias einrichten?
Konkret: Wie erreiche ich, dass "sudo vi dateiname" wie "sudo vim dateiname" behandelt wird?

Wenn ich Dich richtig verstanden habe, musst Du einen vi-Alias für root in der /root/.bashrc anlegen.

Gruß

Dirk

comm_a_nder

Avatar von comm_a_nder

Anmeldungsdatum:
5. Februar 2006

Beiträge: 2533

Wohnort: Dresden

Ich habs bei mir so gelöst:

alias svi='sudo vim'

Hondo

Avatar von Hondo

Anmeldungsdatum:
16. Oktober 2005

Beiträge: 69

Die einfachste Lösung ist sicher ein Link:

$ sudo ln -sf /usr/bin/vim /usr/bin/vi

Falls es den schon gibt, dann müsst ihr /usr/share/vim/vimrc ändern (auch beim Aufruf duch "vi" auf "nocompatible" setzten).

Andi_T.

(Themenstarter)

Anmeldungsdatum:
24. März 2006

Beiträge: 113

Hondo hat geschrieben:

[...] dann müsst ihr /usr/share/vim/vimrc ändern (auch beim Aufruf duch "vi" auf "nocompatible" setzten).

Ich habe eine Lösung gefunden. Ausschlaggebend war die Datei /etc/vim/vimrc.tiny. Darin habe ich den Eintrag "set compatible" in "set nocompatible" geändert.

Danke!

Andi

fniessen

Avatar von fniessen

Anmeldungsdatum:
7. Dezember 2006

Beiträge: 5

Moin,

bin gerade dabei mein System zu säubern und habe deshalb 2 6.10 Systeme auf meiner Platte
(ein neuses fresh install und ein altes 6.06 auf 6.10 hochgezogen)
Auf dem fresh install hatte ich dasselbe PProblem mit vi (alias vim)
Nach euren zahlreichen Tipps habe ich mir die beiden Systeme angeschaut und festgestellt, das
das Problem woanders liegt; der link in /etc/alternatives für vim zeigt nicht mehr auf vim.basic sondern auf vim.tiny!
Eine (weitere) Lösung ist also den 6.06 Zustand wiederherzustellen:

cd /etc/alernatives
sudo rm vim
sudo ln -s /usr/bin/vim.basic vim

HTH
Frank

Lux Team-Icon

Avatar von Lux

Anmeldungsdatum:
10. November 2005

Beiträge: 5152

Wohnort: Grüt (Gossau ZH), Schweiz

fniessen hat geschrieben:

Eine (weitere) Lösung ist also den 6.06 Zustand wiederherzustellen:

sudo update-alternatives --config vim

Gruß

Dirk

Antworten |