Ubuntu非root权限非chsh更改默认shell

参考文献:
https://unix.stackexchange.com/questions/136423/making-zsh-default-shell-without-root-access
https://stackoverflow.com/questions/39621880/is-there-an-alternative-for-bashrc-for-bin-sh

笔者在服务器上无root权限,而且chsh也被管理员锁定,无权限无法使用(错误提示:You may not change the shell for …)。即使每次登入都执行bash命令,配合tmux时真的不胜其烦。
参照上文链接,各种shell均存在一个每次登入时访问的文件(例如.bashrc for bash)。笔者使用的服务器默认shell是dash/sh,默认访问文件是.profile,在其中加入

export SHELL=/user/bash
exec /user/bash -l

相应代码即可。
最终的.profile文件如下:

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
# modified for changing default shell to bash
else
    export SHELL=/bin/bash 
    exec /bin/bash -l
fi

# set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"

你可能感兴趣的:(Ubuntu)