我在我的一个课程中使用 Kali Linux,我们的第一个作业的一部分是使用我们的名字而不是默认的 kali 登录创建一个自定义用户帐户,但是当我这样做时,它会与终端混淆
这是用户终端:
除了颜色之外,外壳也更难使用。没有建议,没有自动完成功能,并且不允许滚动或除打字之外的任何操作。我不知道如何让用户终端看起来像默认的 kali 终端。我尝试复制.bashrc
from /home/kali
to /home/jeff
,但这似乎没有改变任何东西。
复制的文本.bashrc
:
~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
prompt_color='\[\033[;32m\]'
info_color='\[\033[1;34m\]'
prompt_symbol=㉿
if [ "$EUID" -eq 0 ]; then # Change prompt colors for root user
prompt_color='\[\033[;94m\]'
info_color='\[\033[1;31m\]'
prompt_symbol=
答案1
根据问题中的信息,有一些不同的因素会导致您遇到的结果。
要记住的一个关键原则是,在 Linux 中,有多种不同的 shell 可用,例如 dash、csh、bash 和 zsh。 shell 就是任何提供提示、接受命令并返回输出的程序。 “标准”shell 都有相似之处,但它们在功能和配置方法方面也有差异。
此外,每个发行版都会为新用户选择一个默认 shell,通常是(但并非总是)Bash。对于偏爱性能和减少非标准扩展的发行版,sh
通常会选择(通常通过创建到另一个 shell 的符号链接,然后该 shell 以 sh 兼容模式运行)。
我们可以在/etc/passwd
其中一条注释的输出中看到 Kali 默认为您的 jeff 用户提供 shell sh
。虽然性能非常好,但此选择缺乏可配置提示和命令完成等功能。
因此,修复它的第一步是运行如下命令:
sudo chsh -s /bin/bash jeff
正如评论中已经讨论的那样,问题的其余部分似乎归结为权限。每个用户的shell配置文件等都~/.bashrc
需要被用户读取。
/etc/defaults/useradd
请注意,通过编辑(或添加)目录,可以在系统范围内为新用户更改 shell 默认值/etc/skel/
。
我的/etc/defaults/useradd
(针对 Void Linux)包含:
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
/etc/skel
作为运行该命令的副作用,其中的文件将被复制到新用户的主目录useradd
。
答案2
尽管已经正确配置了所有内容,但遇到了同样的问题。不知道发生了什么,但是:
sudo shutdown /r
通过简单的重启,我就让它工作了。