代码改变世界

oracle的特殊权限s bit丢失

  AlfredZhao  阅读(982)  评论(1编辑  收藏  举报

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

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2015-11-18 Oracle 11g DG配置简明版
2015-11-18 OCP考点实战演练01-备份恢复篇
2014-11-18 SQL Tuning 基础概述04 - Oracle 表的类型及介绍
点击右上角即可分享
微信分享提示