Shell-History und Tabulator als root nach der Installation

Herakles

Profifragensteller
Moin!

bereits des Öfteren habe ich direkt nach einer neuen OpenBSD-Installation (nutze OBSD seit 3.3) beobachtet, dass weder die "Vervollständigung" via Tabulator-Taste funktioniert, noch eine shell-history verfügbar ist. Drücke ich auf den schicken Pfeil nach oben, um den vorherigen Befehl zurückzuholen, erscheint nur so etwas im prompt:


Normale User können die History erreichen und auch die Tabulator-Taste hat Wirkung. Wo ist der Unterschied?

Danke, Herakles
 
per default benutzt OpenBSD doch die ksh für user accounts.. und in der ist history/tab completion default on.
root hingegen müsste die csh haben.
Nun könnte man sich die csh Doku reinziehen und das ändern, oder man beharrt auf den Standpunkt dass Sicherheit nichts mit Comfort/Bequemlichkeit zu tun hat - ergo dass root nicht mal schnell in der history blätter und ein rm losjagt :)
 
Komfortable History gibts (zumindest wenns in Wirklichkeit ne tcsh ist) mit
Code:
bindkey -k up history-search-backward
bindkey -k down history-search-forward
 
Also, ich habe die ksh genommen... von mir aus nehm ich dann halt ne andere, hauptsache ich komme an die keys heran, mitunter kann das nämlich aum im vi sehr nervig sein, wenn man irgendwo hinscrollen will und der Kollege zeigt mir nur seine dummen Zeichen.

Also, WIE?
 
Meine .zshrc:

# no core dumps
ulimit -c 0

# file creation mask
umask 022

# auto spellchecking
setopt correct
setopt correctall

# ignore duplicated entrys in history and with trailing spaces
setopt histignoredups
setopt histignorespace

# only exit or logout to leave zsh
setopt ignoreeof

# let you type comment's
setopt interactivecomments

# now you can negates pattern [ ls -d ^*.c ]
setopt extendedglob

# frequently used hosts


# nice prompt on the left side ...
PROMPT=$' %{\e[0;33m%}%/%{\e[0m%} $ '

# of course
EDITOR=vim

# favorite pager (give more information)
PAGER='less -M'

# work with history mechanism
HISTSIZE=1000
SAVEHIST=1000
HISTFILE=~/.zhistory




# executable directories
export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin


#############################################################################
# ALIASES

# some piping stuff
alias -g V='|vim'
alias -g L='|less'
alias -g H='|head'
alias -g T='|tail'
alias -g G='|grep'
# for ^x^h
alias run-help='man'
# no spelling corrections on this commands
alias mv="nocorrect mv"
alias cp="nocorrect cp"
alias mkdir="nocorrect mkdir"
# ssh compress and with X redirect
alias ssh="ssh -C -X"
# Kernighan & Richie Coding Style
alias indent="indent -kr"
# sort by addresses
alias nm="nm -n"

# speed kills! ;-)
alias ..="cd .."
alias ...="cd .. ; cd .."
alias l.="ls -d .[A-Za-z]* --color=auto"
# nice ab
# time
alias tutime='telnet time.fu-berlin.de 13 | grep :'
# checksuming it
alias rsync='rsync -P --checksum'

#############################################################################
# COMMANDLINE COMPLETITION SECTION

# only directories for cd && pushcd; nice feature!
# or "compctl -g '*(-/)' cd pushd" without hidden dirs
compctl -g '*(-/)' + -g '.*(-/)' -v cd pushd

# only java files for javac
compctl -g '*.java' javac

# for ssh && scp connection's
compctl -k hosts ssh scp


#############################################################################
# KEY - BINDINGS

# interactive help? type CTRL-x; CTRL-h
bindkey "^X^H" run-help
# search for command backward
bindkey "^r" history-incremental-search-backward
# emulate some bash feelings
#bindkey "" backward-delete-word

#############################################################################
# FUNCTIONS

# look for definitions
jargon () {
BROWSER="links"
JARGON_URL="http://info.astrian.net/jargon/terms"
for i in ${*}; do
${BROWSER} ${JARGON_URL}/${i}.html
done
}

# next two entrys found on svens hp => guckes.net
# _P = make items "public"
function _P {
( for i in $*; do
if [[ -f $i ]] then; chmod 644 $i; fi
if [[ -d $i ]] then; chmod 755 $i; fi
done; )
}

# _p = make items "private"
function _p {
( for i in $*; do
if [[ -f $i ]] then; chmod 600 $i; fi
if [[ -d $i ]] then; chmod 700 $i; fi
done; )
}


#############################################################################
# "FANCY THINGS WITH ZSH SECTION"

# which of the directorys is the bigest?
# du -sk *(/)*

# which of the files has changed in the last two days?
# echo *(m-2)*

# vim:set ts=2 tw=80 ft=sh:
 
Ach Du Scheisse! Jetzt hab ich mir grade via pkg_add zsh-4.2.4 installiert und jetzt folgendes:

wenn ich als root einloggen will, kommt die Meldung

login: /bin/zsh: No such file or directory

und einloggen kann ich mich nicht mehr. Ich habe den Eintrag /bin/zsh mittels

Code:
chsh root

erstellt. Nach meinem pkg_add war zsh und auch zsh-4.2.4 in /bin enthalten. Jetzt auf einmal nicht mehr???!!?? Und wie in Gottes namen stell ich das wieder zurück, damit ich wieder als root an den Rechner komme??


Uiuiui.... Herakles

[edit]
GLÜCK GEHABT! Ich hatte noch ne ssh-Verbindung als root offen... PUH!
[/edit]
 
Hast du auch zsh-static benutzt?
Ich habe gehört, das man als root-Shell (aus Sicherheitsgründen) eine Shell mit statisch kompilierten Bibliotheken nehmen soll.
(Wär schön, wenn evtl. mal einer erklären könnte, warum.)
 
Hast du auch zsh-static benutzt?
Ich habe gehört, das man als root-Shell (aus Sicherheitsgründen) eine Shell mit statisch kompilierten Bibliotheken nehmen soll.
(Wär schön, wenn evtl. mal einer erklären könnte, warum.)

Ganz einfach, wenn das System im single user mode gestartet wird, wird nur die root Partition gemountet. So mit ist es nicht möglich die libs unter /usr zu laden.

Aber das dürfte unter OpenBSD kein Problem sein, da OpenBSD fragt welche Shell es verwenden soll wenn man im single user mode startet.

Siehe hierzu auch: http://www.openbsd.org/faq/faq10.html#rootshell
 
Hi!

@ nevixpain:
Ui, da gibt's sachen, die ich vorher nicht kannte... Vielleicht ist changelogs Lesen
doch keine so schlechte Idee. :D

meine: ~/.zshrc


MfG, sins
 
Zurück
Oben