Linux中切换用户变成-bash4.1-$的解决方法【转】
转自
Linux中切换用户变成-bash4.1-$的解决方法 - xia_xia的博客 - 博客频道 - CSDN.NET
http://blog.csdn.net/xia_xia0919/article/details/50588985
在linux中切换用户时变成-bash4.1-$,发现有两个情况可能会出现这种现象。
场景一:1、在根目录下创建目录dir
2、useradd -d /dir tom 创建用户tom,指定其家目录为/dir,而不是其默认家目录下(/home/tom)
3、su - tom 切换到tom用户,出现-bash-4.1$
原因分析:如果我们没有改变用户的家目录的话,通常情况下,新增用户指定目录应该是/home,先来看一下用户jinjin默认家目录下有哪些文件
再来看一下tom用户家目录下有什么?
发现在tom的家目录下是空的,缺少用户登入需要的环境配置文件.bash_profile .bashrc等,那么为什么需要这样文件,这就是跟linux的机制有关联了,因为在linux下每次通过useradd创建新的用户时,都会将所有的配置文件从/etc/skel复制到新用户的主目录下,一般默认在home下面的新用户主目录,而关于/etc/skel这个目录,是主要被useradd所用到。而在我们创建tom用户时,系统也出现过提示,没有将/etc/skel的文件复制到该目录。
解决办法:通过如上的解析,我们不难发现要解决命令在用户切换之后为什么会变成bash格式,就需要将 /etc/skel的用户环境配置文件复制到指定的默认目录下即可(此处注意/etc/skel/.后面的点不要漏了,因为那几个文件都是隐藏文件,不加点无法对隐藏文件进行复制),这样在切到tom用户就没有出现-bash-4,1$了
现在再看看tom的家目录下就有了那些环境配置文件了
场景二:1、创建用户sara,家目录为默认家目录 /home/sara
2、使用usermod -d /tmp/sara sara 更改用户sara的家目录
3、su - sara 出现-bash4.1-$
vim /etc/passwd查看到sara的家目录已经到 /tmp/sara中了
原因分析:此时查看sara的家目录确实已经在/tmp/sara中,但是发现sara文件夹仍在/home下而不在/tmp下,那用户在登入时即无法在其家目录下读取到配置文件。
这是为什么呢?查看usermod的参数,发现-m -d需要一起使用才能把已存在的sara文件夹移到新目录中去。
解决办法:在改变用户家目录时 usermod带上参数-d -m
目前大家遇到比较多的是第二种情况,可以试试~~
Linux中切换用户变成-bash4.1-$的解决方法【转】的更多相关文章
- Linux中切换用户变成-bash4.1-$的解决方法
原因是root在/root下面的几个配置文件丢失,将/etc/skel/目录下的三个文件拷贝到用户家目录即可 cp /etc/skel/.bashrc /root/ cp /etc/skel/.bas ...
- linux使用su切换用户提示 Authentication failure的解决方法& 复制文件时,报cp: omitting directory `XXX'
linux使用su切换用户提示 Authentication failure的解决方法:这个问题产生的原因是由于ubtun系统默认是没有激活root用户的,需要我们手工进行操作,在命令行界面下,或者在 ...
- Linux 使用 su 切换用户提示 Authentication Failure 的解决方法
Ubuntu v14.04,使用 su 命令切换用户时报验证失败的错误 这个问题产生的原因是由于 ubuntu 系统默认是没有激活 root 用户的,需要我们手工进行操作,在命令行界面下,或者在终端中 ...
- Linux中“is not in the sudoers file”解决方法
当在终端执行sudo命令时,系统提示"hadoop is not in the sudoers file": 其实就是没有权限进行sudo,解决方法如下(这里假设用户名是cuser ...
- 在Linux中切换用户时变成-bash-4.3$
增加普通用户 [root@git-node1 ~]#useradd nulige [root@git-node1 ~]#passwd nulige 输入两次密码 [root@git-node1 ~]# ...
- linux中切换用户方式su和su -的区别
Using su The su command allows users to open a terminal window, and from that terminal start a sub ...
- RedHat Linux下普通用户无法使用sudo命令的解决方法
Ref:http://blog.sina.com.cn/s/blog_4aa35ca101012qb6.html 装完linux系统,发现普通用户无法使用sudo 命令, 提示:User1(普通用户) ...
- Linux 中 Buffer/Cache内存占用过高解决方法
在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态: 这里的默认显示单位是kb,我的服务器是128G内存,所以数字显 ...
- Linux中找不到ifconfig命令的解决方法
1.ifconfig命令是设置或显示网络接口的程序,可以显示出我们机器的网卡信息,可是有些时候最小化安装CentOS等Linux发行版的时候会默认不安装ifconfig等命令,这时候你进入终端,运行i ...
随机推荐
- java.lang.OutOfMemoryError: Java heap space错误及处理办
默认方式启动Eclipse时,有关启动时JVM参数是在Eclipse安装目录下的eclipse.ini文件中指定的.在命令行下,也可以通过参数-vmargs来达到此目的.其命令格式为:eclipse ...
- JavaScript中prompt()函数的用法。
定义和用法 prompt()方法用于显示一个带有提示信息,并且用户可以输入的对话框. 语法 prompt(text,defaultText); 参数 描述 text 可选.要在对话框中显示的提示信息( ...
- String.IsNullOrEmpty()和String.IsNullOrWhiteSpace()的区别
string.IsNullOrEmpty 这个是判断字符串是否为:null或者string.Empty或者“”,但不包含空格 .如果是如"\t"或者“ ” 这样的字符就返回fa ...
- 基于Debian系统配置Nginx环境的Node.js应用教程
Node.js,是当前比较流行的能够动态的快速响应内容的JavaScript框架,在有些环境下比我们使用的PHP应用都能够提高效率.目 前,Node.js可以与我们常用的Nginx.Apache等服务 ...
- mybatis 主键UUID生成策略
<insert id="insert" parameterType="com.lsfwpt.lawmis.po.SysUser"> <sele ...
- git切换分支
今天同事问我她的报错了,我看了一下,是分支没有指向远程仓库对应的分支;报错如下; $ git pull There is no tracking information for the current ...
- Arrays.toString(a)--->将数组a的值转换为字符串
Arrays.toString(数组)是java内置类Arrays类的一个方法,具体查Api可知.因为数组是不可直接输出的,它的作用是将数组转换为字符串.其实用for循环也是可以做到的,只不过比for ...
- iOS毛玻璃擦除效果
思路:首先我的思路放两个imageView在Controller里把高清的图片放在下面,带有毛玻璃效果的图片放在上面. //在Controller的view上加一个手势代码如下(温馨提示,开启imae ...
- json格式数据 ,将数据库中查询的结果转换为json(方式2)
controller: /*** * 返回所有版本的信息,json的形式返回到前台 * @return */ @RequestMapping(value="/getAllVersion&qu ...
- 聊天系统Demo,增加文件传送功能(附源码)-- ESFramework 4.0 快速上手(14)
本文我们将介绍在ESFramework 4.0 快速上手(08) -- 入门Demo,一个简单的IM系统(附源码)的基础上,增加文件传送的功能.如果不了解如何使用ESFramework提供的文件传送功 ...