共计 718 个字符,预计需要花费 2 分钟才能阅读完成。
在 SUN Cluster 搭建过程中,主机工程师在配置集群资源组时报一个 Oracle 的文件权限错误;
协助排查,发现报错很明确,直接指出说 Oracle 的 s bit 权限未设置。
直接去查看 $ORACLE_HOME/bin/oracle 的权限
cd $ORACLE_HOME/bin/
ls -l oracle
发现现状是:
-rwxr-x–x. 1 oracle oinstall 239626683 Nov 8 04:11 oracle
而正常安装软件后的权限应该是:
-rwsr-s–x. 1 oracle oinstall 239626683 Nov 8 04:11 oracle
很明显,的确少了 s 权限,解决该问题也十分简单,只需要赋予用户和所在组的 s 权限:
–setuid
chmod u+s oracle
–setgid
chmod g+s oracle
– 或者直接一条命令同时设置 setuid,setgid:
chmod ug+s oracle
那本次发生这样情况的原因是什么呢?
因为 oracle 软件不是安装的,通过 tar -cvf 打包然后 scp 传送到另一个节点,最后 tar -xvf 解包的。
这种方式发现其他文件权限都没问题,唯独 oracle 这个特殊的 setuid,setgid 权限丢失了,需要手工授予。
而正常情况下这种方式不应该丢失任何权限,我在自己的 Linux 测试环境测了下,并不会丢失 s 权限,所以初步判定是遭遇了早期 tar 版本的 bug。
更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137430.htm