(erledigt) sudo tab Vervollständigung geht bei machen system Befehlen nicht
(erledigt) sudo tab Vervollständigung geht bei machen system Befehlen nicht
Hallo,
was muss man einstellen das auch die tab Vervollstädigung bei dem sudo f<tab drücken> Befehl auch sudo fdisk zurückliefert, fdisk dient nur als Bsp
Wahrscheinlich sind es noch mehr system Befehle die nicht per Tab Vervollständigt werden wenn man sudo voranstellt an dem Befehl. Wie zb.: sudo vg<tab drücken> liefert kein vgreduce zurück ...
Danke
was muss man einstellen das auch die tab Vervollstädigung bei dem sudo f<tab drücken> Befehl auch sudo fdisk zurückliefert, fdisk dient nur als Bsp
Wahrscheinlich sind es noch mehr system Befehle die nicht per Tab Vervollständigt werden wenn man sudo voranstellt an dem Befehl. Wie zb.: sudo vg<tab drücken> liefert kein vgreduce zurück ...
Danke
Zuletzt geändert von ren22 am 26.10.2019 14:47:56, insgesamt 1-mal geändert.
Re: sudo tab Vervollständigung geht bei machen system Befehlen nicht
Die Completion zeigt naturgemäß nur Sachen an, die sich in der aktuellen $PATH befinden. Einfache Abhilfe: Sachen, die als Root gemacht werden sollen, als Root machen: die sbin-Verzeichnisse sind in dessen PATH, und Tab wird’s entsprechend vervollständigen.
- Lord_Carlos
- Beiträge: 5578
- Registriert: 30.04.2006 17:58:52
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Dänemark
Re: sudo tab Vervollständigung geht bei machen system Befehlen nicht
Sudo ist nett
Stell mal sicher das du bash-completion installiert hast.
Dann guck mal in deine ~/.bash_profile und/oder /etc/profile
und guck ob dieser kode enhalten und nicht kommentiert ist:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Kann gut sein das es da schon steht, aber mit # vor jeder Zeile. Einfach die # wegmachen, speichern und neustarten (oder in bash neu einloggen)
Stell mal sicher das du bash-completion installiert hast.
Dann guck mal in deine ~/.bash_profile und/oder /etc/profile
und guck ob dieser kode enhalten und nicht kommentiert ist:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Kann gut sein das es da schon steht, aber mit # vor jeder Zeile. Einfach die # wegmachen, speichern und neustarten (oder in bash neu einloggen)
Code: Alles auswählen
╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!
Re: sudo tab Vervollständigung geht bei machen system Befehlen nicht
Dafür ist bash-completion aber nicht gedacht.Lord_Carlos hat geschrieben:21.10.2019 10:11:10Stell mal sicher das du bash-completion installiert hast.
bash-completion ergänzt Programmparameter, teiweise ausgeschriebene Namen von Executables werden von der Shell selbst ergänzt.
Zum Beipiel:
Code: Alles auswählen
apt-get upd<TAB>
Re: sudo tab Vervollständigung geht bei machen system Befehlen nicht
Sudo-Diskussion nach viewtopic.php?f=15&t=175130 verschoben. Es ist wohl schon der zehnte sudo-Diskussion-Thread, aber nun gut. Wer daran teilnehmen will, kann das *dort* tun. Hier nicht. Hier wird ueber Tab-Completion geredet.
Use ed once in a while!
Re: sudo tab Vervollständigung geht bei machen system Befehlen nicht
Das Problem ist aber nunmal, dass die Shell bei der Verwendung von sudo nicht weiß, was in der $PATH des Zielusers oder in der sudoers steht, und die Completion per Tab deswegen nicht funktionieren kann. Lässt sich daher leider nicht vermeiden, auch sudo mit einzubeziehen
Re: sudo tab Vervollständigung geht bei machen system Befehlen nicht
@niemand stimmt, daran habe ich garnicht gedacht mit der $PATH Variable, auch völlig Logischniemand hat geschrieben:20.10.2019 18:43:59Die Completion zeigt naturgemäß nur Sachen an, die sich in der aktuellen $PATH befinden. Einfache Abhilfe: Sachen, die als Root gemacht werden sollen, als Root machen: die sbin-Verzeichnisse sind in dessen PATH, und Tab wird’s entsprechend vervollständigen.
Was würde denn passieren, wenn ich die $PATH Variablen von root, ebenfalls dem Benutzer zu ordne
Ich schlimmsten Falle "Keine Berechtigung", wenn man Programm xyz aus den sbin Verzeichnissen ausführen möchte
Danke
Re: sudo tab Vervollständigung geht bei machen system Befehlen nicht
Ich habe bei meinem normalen User auch sbin im $PATH. Schlimm ist das nicht. ifconfig(8) z.B. laesst sich auch als normaler User ausfuehren.ren22 hat geschrieben:21.10.2019 22:02:57Was würde denn passieren, wenn ich die $PATH Variablen von root, ebenfalls dem Benutzer zu ordne
Ich schlimmsten Falle "Keine Berechtigung", wenn man Programm xyz aus den sbin Verzeichnissen ausführen möchte
Btw: Der Hintergrund ist der, dass `sbin' IIRC urspruenglich fuer ``statically linked binaries'' stand. Als dynamische Linken aufkam fuehrte man das ein, um wichtige Systembefehle statisch gelinkt abzulegen, damit sie auch noch funktionieren, wenn das System nicht ganz in Ordnung ist.
Use ed once in a while!
Re: sudo tab Vervollständigung geht bei machen system Befehlen nicht
Auf anderen Systemen sieht’s gar so aus:
(reichen vier? Oder sollten’s mehr sein? Ich bin nicht so geübt im sinnlosen Smileyposten)
Code: Alles auswählen
% file /sbin
/sbin: symbolic link to usr/bin
(reichen vier? Oder sollten’s mehr sein? Ich bin nicht so geübt im sinnlosen Smileyposten)
Re: sudo tab Vervollständigung geht bei machen system Befehlen nicht
Natürlich ist das nicht schlimm.Meillo hat geschrieben:21.10.2019 22:25:43Ich habe bei meinem normalen User auch sbin im $PATH. Schlimm ist das nicht.
Ein eingeschränkter PATH ist bestenfalls Security by Obscurity. Durch einen erweiterten PATH kann man jedenfalls keinen Schaden anrichten. Z.B. mit ifconfig kann man nur die aktuelle Konfiguration abfragen, zum Setzen von Parametern braucht man root-Rechte.
Re: sudo tab Vervollständigung geht bei machen system Befehlen nicht
Ah, mal wieder was gelernt Habe nie überlegt, woher das s kommen könnte.Meillo hat geschrieben:21.10.2019 22:25:43Btw: Der Hintergrund ist der, dass `sbin' IIRC urspruenglich fuer ``statically linked binaries'' stand. Als dynamische Linken aufkam fuehrte man das ein, um wichtige Systembefehle statisch gelinkt abzulegen, damit sie auch noch funktionieren, wenn das System nicht ganz in Ordnung ist.
Manchmal bekannt als Just (another) Terminal Hacker.