今天用useradd命令新建用户后,发现新用户“不显示用户名和路径”,如图,看着很难受:
就类似于这样:
$ cd ~
$ ls$ ls -a
从网上搜集资料,有如下两种解决方法:
#可以先cat /etc/passwd查看新用户指定shell是否为/bin/bash
su - root
usermod -s /bin/bash newUser
如果修改指定shell后还是不行的话只能用下面方法了。
vim ~/.bash_profile
#加入这一行
export PS1='[$USER@$PWD]$'
#保存然后刷新~/.bash_profile文件
source ~/.bash_profile
-----------备注-----------
#网上也有说加入这一行的,但是我的CentOS7亲测不行,上面的肯定能行
#export PS1='[u@h W]$'
#其中大写W代表最后路径,小写w代表详细路径
后来我研究了下root下的~/.bash_profile文件,发现它调用了~/.bashrc后又调用了/etc/bashrc文件,如下:
[root@jiahao ~]# cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
[root@jiahao ~]# cat .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
这就很好办啦,摈弃一些无用的设置,直接在新建的~/.bash_profile文件中写入:
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
但是这样其实是有风险的哦,有兴趣的同学可以试一试,但是不要在生产环境试哦!
useradd命令解析
-d 指定家目录
-g 指定用户组
-s 指定用户登入后所使用的shell
-m 自动创建用户的家目录。
Case 1: 创建一个带有家目录并且可以登录 bash 的用户
$ sudo useradd -m -s /bin/bash tester1
Case 2: 指定创建用户家目录的路径
$ sudo useradd -m -d /home/xxx tester2
/home/xxx目录会被创建。
Case 3: 创建一个没有家目录且不能登录的用户
$ sudo useradd -s /sbin/nologin tester3
Case 4: 创建时把用户加入不同的用户组
$ sudo useradd -m -G xxx,sudo tester4
注意过个组名使用逗号分隔,不能有空格。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。