今天在虚拟机中装了RedHat EnterPrise Linux,在其中创建了一个oacle用户,并在oracle下安装了oracle数据库,可是在安装好后,重启用oracle用户登录后弹出一个警告框,内容如下:
User's $HOME/.dmrc file is being ignored. This prevents the defaults session and language from being saved. File should be owned by user and have 644 permissions. User's $HOME directory must be owned by user and not writable by other users.
用户的$HOME/.dmrc已被忽略。这将无法保存默认会话和语言。该文件应该由用户所有,并且权限设置为644。用户的$HOME目录应由用户自己所有,其他用户不应拥有写权限。
原因:当时为了安装oracle数据库,将/home/oracle的属主赋给了oracle,并修改其权限为775(即rwxrwxr-x),使得属主oracle用户具有:读、写、执行权限即rwx,同组的默认用户dba也具有了rwx权限,其他用户组的用户也具有读和执行权限,即r-x.所以当以oracle用户登录时提示,当前用户主目录的权限不符合644(rw-r--r-- 即读写-读--读--)权限,故提示了上述警告。
解决办法:
把username 替换为自己的用户名称即可,我用的是oracle
1.先说我的怎么解决的:
a. 我的/home/目录下有oracle用户对应的oracle文件夹 和 redhat用户对应的redhat文件夹
b.在home目录下,用ls-l查看到:drwxr-xr-x 29 oracle dba 4096 Jan 13 10:53 oracle
c.说明oracle目录的属主是oracle用户,在dba组中,并且拥有的权限是:rwx rwx,说明这个的原因是,我不需再用chown -R oracle oracle把oracle目录的属主赋给oracle用户 了
d.在/home/目录下执行:chmod 755 oracle 命令修改权限即可。我的是[oracle@localhost home]$ chmod 755 oracle
重新登录一下就好了(我曾改成过644,但直接就进不去了,可能是同组的dba用户需要执行权限x吧,这个我不深究了,有兴趣的可以看看)
2.通用的解决办法:
cd ~/
sudo chown username .dmrc
chmod 644 .dmrc
这上面的意思是把该用户目录下.dmrc文件的属主赋设为username(即该用户),然后将.dmrc的权限设为644
cd /home
sudo chown username username
chmod 755 username
意思是将username文件夹的属主设为username用户,并将username目录的权限设为755,至此,重启问题既解决。
3.可能出现的问题:
用第二中方法时:
a.可能出现username不在sudoers中的错误,其实没必要用sudo,只要你当前用户username对自己的username目录有w权限即可用chmod 修改该目录权限的能力,如果 有该权限,就直接chown就好了;如果没有权限那用su root切换到root用户下,chown username /home/username chmod 755 username 加上这两句即可。
b.出现.dmrc找不到的情况:首先要到/home/username目录下找,并用ctrl + H,将隐藏文件显示。如果还是找不到,那就不用找了,我的redhat下也是没找到,本质上是文 件权限问题,没必要非要.dmrc文件。
4.用到的命令:
主要用到chmod 命令和chown命令,实在解决不了,学习一下linux的文件安全知识,里面会介绍这两个命令。