0

Putty を介して Linux サーバーにアクセスしようとしていますが、何らかの理由でログインが成功した後、「/bin/bash no such file or directory」がスローされ、Putty が閉じます。

.bashrc の内容:

# /etc/bashrc

# System wide functions and aliases
# Environment stuff goes in /etc/profile

# By default, we want this to get set.
# Even for non-interactive, non-login shells.
if [ $UID -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi

# are we an interactive shell?
if [ "$PS1" ]; then
    case $TERM in
    xterm*)
        if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
            PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
        else
            PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"'
        fi
        ;;
    screen)
        if [ -e /etc/sysconfig/bash-prompt-screen ]; then
            PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
        else
        PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"'
        fi
        ;;
    *)
        [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
        ;;
    esac
    # Turn on checkwinsize
    shopt -s checkwinsize
    [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
fi

if ! shopt -q login_shell ; then # We're not a login shell
    # Need to redefine pathmunge, it get's undefined at the end of /etc/profile
    pathmunge () {
        if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
            if [ "$2" = "after" ] ; then
                PATH=$PATH:$1
            else
                PATH=$1:$PATH
            fi
        fi
    }

    # Only display echos from profile.d scripts if we are no login shell
    # and interactive - otherwise just process them to set envvars
    for i in /etc/profile.d/*.sh; do
        if [ -r "$i" ]; then
            if [ "$PS1" ]; then
                . $i
            else
                . $i >/dev/null 2>&1
            fi
        fi
    done

    unset i
    unset pathmunge
fi
# vim:ts=4:sw=4

何が原因でしょうか?

ありがとう!

4

2 に答える 2

0

ディレクトリが設定され/etc/ssh/sshd_config ていないことを確認してください。chrootその場合、ディレクトリに bin ディレクトリを作成chrootし、必要なバイナリをそのディレクトリにコピーまたはリンクする必要があります。

または、構成でその行をいつでもコメントアウトできます。

いずれにせよ、sshd を再起動してテストします。

于 2013-01-29T13:36:25.920 に答える
0

このLinuxbashボックスの別の場所にある可能性が高いです。/bin/bash

さまざまなボックスでこれが当てはまることがわかったので.profile、ホームディレクトリのスクリプトを変更して、bashを直接実行しないようにしました。これが解決策になる可能性があります。したがって、ログインすると、bourne シェルにとどまり、明示的に入力した場合にのみ bash シェルに移動しますbash

于 2012-09-27T10:55:13.593 に答える