Linux中切换用户变成-bash4.2-$

今天创建用户后切换用户出现 bash4.2-$ 这种情况,其实以前也遇到过,但没在意,现在解决下吧!


一、源头

这里写图片描述
创建一个系统用户,而我却要切换进去该用户进行操作,于是就这样了。

二、原因及解决

原来 useradd -r 创建的系统用户不可用于登录系统,和平常的直接 useradd xxx 结果完全不同。
useradd xxx 会直接再 /home 下生成用户目录,仔细查看隐藏的文件,发现一推.bash_logout./bash_profile.bashrc等文件
这里写图片描述

那么为什么需要这样文件,这就是跟linux的机制有关联了,因为在linux下每次通过useradd创建新的用户时,都会将所有的配置文件从 /etc/skel 复制到新用户的主目录下,一般默认在home下面的新用户主目录,而关于/etc/skel这个目录,是主要被useradd所用到。
简而言之,想要登录、添加用户环境变量,必须在用户主目录下存在这些文件。

于是,我么可以吧/etc/skel下的文件复制到系统用户主目录下,就可以登陆啦
这里写图片描述

[root@cdh1 es]# cp -a /etc/skel/. /home/es/   (注意这个点不能省)

ok!


注:
设置用户免密sudo:

[root@cdh1 elasticsearch-5.4.0]# vim /etc/sudoers

添加 es ALL=(ALL)NOPASSWD:ALL 一行
这里写图片描述
这里写图片描述
即可su 用户,免密sudo啦

你可能感兴趣的:(linux)