oracle的特殊权限s bit丢失

时间:2023-03-09 05:17:46
oracle的特殊权限s bit丢失

在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。