centos7.6 安装Oracle切换用户时变成bash-4.2$的解决办法

centos7.6 安装Oracle切换用户时变成bash-4.2$的解决办法

Scroll Down

在安装centos7.6 安装Oracle切换用户时变成bash-4.2$,如下图:

image.png

同时在输入命令的时候,发现有的命令无法执行。

image.png

简单说一下原因,这是因为在创建用户的时候,系统会给新的用户常见主目录,但是在新建用户过程中,用户位于主目录的环境配置文件.bash_profile .bashrc等丢失造成的。

因此,解决的办法就是将系统的用户环境配置文件,移至新建用户的主目录的根目录。或者曾经改过主目录文件位置,但是未曾将原来的用户环境配置文件移到新的目录下,解决办法就是移一下就好了!

我们来看看实例:

1,首先检查用户的主目录。

查看办法:

cat /etc/passwd

image.png

可以看到,新建的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的安装目录。

image.png

然后,我们检查一下/home目录。

image.png

发现/home文件确实存在Oracle,并且Oracle用户下面环境文件都存在。

3,修改思路

那么现在有两种思路:

  • 一是将Oracle用户主目录修改回原有目录
  • 二是将环境文件复制到新的主目录下面。

为了全面解释清楚,我选择再新建新的用户主目录,并将环境文件一直新文件夹下面。

4,新建新的用户主目录。

新建新的用户主目录 /tmp/oracle。

mkdir /tmp/oracle

image.png

5,复制环境文件

将/home下面的环境文件复制到/tmp/oracle文件夹下面。

image.png

注意

  1. 此处注意/home/Oracle/.后面的点不要漏了,因为那几个文件都是隐藏文件,不加点无法对隐藏文件进行复制。
  2. 还有就是每次新建用户的这些环境文件都是在/etc/skel里面,因此,从/etc/skel里面复制过去也是可以的。

6,修改主目录路径

现在,还需要修改系统的主目录路径。

6.1,第一种办法,修改/etc/passwd/文件。

vim /etc/passwd 

image.png

6.2,第二种办法,使用usermod。

# 设置用户登录行为
sudo usermod -s /bin/bash username
# 设置用户主目录
sudo usermod -d /home/uftp username

上面两种,建议禁止使用第一种,采用第二种方法。

最后验证:

image.png

问题解决!

最后,如果因为某种原因需要更改用户主目录,使用下面方法!

usermod -md /xxx/xxx  username

image.png

完成!

76043847.jpg