在安装centos7.6 安装Oracle切换用户时变成bash-4.2$,如下图:
同时在输入命令的时候,发现有的命令无法执行。
简单说一下原因,这是因为在创建用户的时候,系统会给新的用户常见主目录,但是在新建用户过程中,用户位于主目录的环境配置文件.bash_profile .bashrc等丢失造成的。
因此,解决的办法就是将系统的用户环境配置文件,移至新建用户的主目录的根目录。或者曾经改过主目录文件位置,但是未曾将原来的用户环境配置文件移到新的目录下,解决办法就是移一下就好了!
我们来看看实例:
1,首先检查用户的主目录。
查看办法:
cat /etc/passwd
可以看到,新建的Oracle用户的主目录 位于/data/oracle.
造成的原因是:在安装Oracle的过程中,使用useadd命令安装
useradd -g oinstall -G dba oracle
然后,在后面只是针对Oracle文夹进行授权,造成的原因是用户刚登录到系统中时,其工作目录便是该用户主目录。
chown -R oracle:oinstall /data/Oracle/
主:正常新建用户如果不指定位置,将会位于/home目录下。
- 从逻辑上讲,用户在登录到Linux系统中之后,每时每刻都处在某个目录之中,此目录被称做工作目录或当前目录(Working Directory)。
- 工作目录是可以随时改变的。用户初始登录到系统中时,其主目录(HomeDirectory)就成为其工作目录。工作目录用“.”表示,其父目录用“..”表示。
- 用户主目录是系统管理员增加用户时创建起来的(以后也可以改变),每个用户都有自己的主目录,不同用户的主目录一般互不相同。
- 用户刚登录到系统中时,其工作目录便是该用户主目录,通常与用户的登录名相同。
- 用户可以通过一个~字符来引用自己的主目录。
- 对一般用户,~表示/home/(用户名)
- 对于root用户,~表示/root
2,检查用户主目录是否拥有环境配置文件。
感觉是不会存在于 /data/oracle文件,这个毕竟是Oracle的安装目录。
然后,我们检查一下/home目录。
发现/home文件确实存在Oracle,并且Oracle用户下面环境文件都存在。
3,修改思路
那么现在有两种思路:
- 一是将Oracle用户主目录修改回原有目录
- 二是将环境文件复制到新的主目录下面。
为了全面解释清楚,我选择再新建新的用户主目录,并将环境文件一直新文件夹下面。
4,新建新的用户主目录。
新建新的用户主目录 /tmp/oracle。
mkdir /tmp/oracle
5,复制环境文件
将/home下面的环境文件复制到/tmp/oracle文件夹下面。
注意:
- 此处注意/home/Oracle/.后面的点不要漏了,因为那几个文件都是隐藏文件,不加点无法对隐藏文件进行复制。
- 还有就是每次新建用户的这些环境文件都是在/etc/skel里面,因此,从/etc/skel里面复制过去也是可以的。
6,修改主目录路径
现在,还需要修改系统的主目录路径。
6.1,第一种办法,修改/etc/passwd/文件。
vim /etc/passwd
6.2,第二种办法,使用usermod。
# 设置用户登录行为
sudo usermod -s /bin/bash username
# 设置用户主目录
sudo usermod -d /home/uftp username
上面两种,建议禁止使用第一种,采用第二种方法。
最后验证:
问题解决!
最后,如果因为某种原因需要更改用户主目录,使用下面方法!
usermod -md /xxx/xxx username
完成!
评论区