2012-03-30 8 views
4

私はRyanのRailsCast Episode 339に従っていました。私はrbenvをインストールしていて、ruby -vを実行できました。私は私のセッションを終了し、私はrootから(経由su deployerに戻って来ることを試みたとき、私はここでrbenv:許可が拒否されました

/home/deployer/.rbenv/bin/rbenv: line 20: cd: /root: Permission denied 

rbenvファイルで、このエラーを得た:

#!/usr/bin/env bash 
set -e 
[ -n "$RBENV_DEBUG" ] && set -x 

resolve_link() { 
    $(type -p greadlink readlink | head -1) "$1" 
} 

abs_dirname() { 
    local cwd="$(pwd)" 
    local path="$1" 

    while [ -n "$path" ]; do 
    cd "${path%/*}" 
    local name="${path##*/}" 
    path="$(resolve_link "$name" || true)" 
    done 

    pwd 
    cd "$cwd" 
} 

if [ -z "${RBENV_ROOT}" ]; then 
    RBENV_ROOT="${HOME}/.rbenv" 
else 
    RBENV_ROOT="${RBENV_ROOT%/}" 
fi 
export RBENV_ROOT 

if [ -z "${RBENV_DIR}" ]; then 
    RBENV_DIR="$(pwd)" 
else 
    cd "$RBENV_DIR" 2>/dev/null || { 
    echo "rbenv: cannot change working directory to \`$RBENV_DIR'" 
    exit 1 
    } >&2 
    RBENV_DIR="$(pwd)" 
    cd "$OLDPWD" 
fi 
export RBENV_DIR 


shopt -s nullglob 

bin_path="$(abs_dirname "$0")" 
for plugin_bin in "${RBENV_ROOT}/plugins/"*/bin; do 
    bin_path="${bin_path}:${plugin_bin}" 
done 
export PATH="${bin_path}:${PATH}" 

hook_path="${RBENV_HOOK_PATH}:${RBENV_ROOT}/rbenv.d:/usr/local/etc/rbenv.d:/etc/rbenv.d:/usr/lib/rbenv/hooks" 
for plugin_hook in "${RBENV_ROOT}/plugins/"*/etc/rbenv.d; do 
    hook_path="${hook_path}:${plugin_hook}" 
done 
export RBENV_HOOK_PATH="$hook_path" 

shopt -u nullglob 


command="$1" 
case "$command" in 
"" | "-h" | "--help") 
    echo -e "rbenv 0.3.0\n$(rbenv-help)" >&2 
    ;; 
*) 
    command_path="$(command -v "rbenv-$command" || true)" 
    if [ -z "$command_path" ]; then 
    echo "rbenv: no such command \`$command'" >&2 
    exit 1 
    fi 

    shift 1 
    exec "$command_path" "[email protected]" 
    ;; 
esac 

ライン20はcd "$cwd"

です

セッションに戻ろうとしたときにこのエラーが発生する理由についてのアイディア

+6

になります。ユーザーを「デプロイヤー」に切り替えると、/ rootにいるように見えます。 "デプロイヤー"がアクセスできるディレクトリにいることを確認してください。 – d11wtq

+0

あなたはそうです。私は '/ root'に入っていました。デプロイヤーは管理者グループの中にいるので、デプロイヤーにアクセスできると思っていました。あなたは正しいのですが、単純なディレクトリの切り替えによって私は 'su 'を正しく許可しました。これを答えにしたいなら、私はそれを受け入れます。ありがとう。 –

答えて

11

あなたが/ rootにいるのは、ユーザーを「デプロイヤー」に切り替えます。 "デプロイヤー"がアクセスできるディレクトリにいることを確認してください。

クレジットはd11wtq

関連する問題