Linux故障排查案例实战

1.1 su  切换用户带来的疑惑

这是一个客户的案例,客户的一台 Oracle 数据库服务器突然宕机了,由于在线业务的

需要,客户没有考虑太多就直接重启了服务器,系统重新启动倒是没有出现问题,可是接下

来,当客户准备切换到 oracle 用户下启动数据库时,怎么都无法进行 su 切换,于是问题出

现了。

1 . 案例现象

在 root 用户下,su 切换到一个普通用户 oracle 下,却发生了错误,如图:

 

于是,尝试直接通过 oracle 用户登录系统,发现此时的 oracle 用户也无法登录了,出现

与上面同样的错误。

2 . 解决思路

从上面错误提示可知是权限出现了问题,那么可以从权限入手进行排查,基本思路如下:

  用户目录/home/oracle 权限问题

  su 程序执行权限问题

  程序依赖的共享库权限问题

  selinux 问题导致

  系统根空间问题

3 . 排查问题

根据上面的思路,我们进行逐一检查,考虑到 su 在切换到 oracle 用户时会读取 oracle

目录下的环境变量配置文件,因此,首先检查/home/oracle 目录的权限是否存在问题,

[root@localhost home]# ls -al /home|grep oracle

drwx------ 4 oracle oinstall 4096 01-31 10:45 oracle

从输出可知,/home/oracle目录的属主是oracle用户,而oracle用户对这个目录具有“rwx”

权限,因此,oracle 用户目录的权限设置是正确的,可以排除掉这个问题了。

接着检查 su 执行权限问题:

[root@localhost home]# ll /bin/su

-rwsr-xr-x 1 root root 24120 2007-11-30 /bin/su

可见 su 命令执行权限也没有问题,这个也排除了。

继续检查 su 依赖的共享库权限,使用 ldd 命令检查 su 命令依赖的共享库文件,如图所示,通过 ldd 命令检查 su 命令依赖的共享库文件。

根据上面的操作,依次检查 su 命令依赖的每个库文件的权限,发现也都是正常的,都

具有可执行权限,因此,共享库的问题也排除了。

根据上面的思路,继续检查 SELinux 的设置,执行命令如图所示,检查 SELinux 的设置

 

由输出可知,SELinux 处于关闭状态,这个原因也排除了。

到这来为止,问题变得扑朔迷离,到底是哪里出现问题了呢?作为 Linux 运维,例行检

查系统根分区状态是非常必要的,那么首先检查一下根分区的磁盘空间大小,发现剩余空间

还有很多,空间问题也排除。既然报的错误是权限有问题,那么只要以权限为线索,不偏离

这个核心就没错,于是继续尝试检查/home 目录下各个用户的权限,执行命令如图所示。

从输出看每个用户的目录权限,都是“rwx------”,即“700”,完全没有问题,可是我

发现我错了,我的目光一直在用户对应的目录上,而忽略了其他输出信息,而问题就藏在我

没有关注的信息中。在这个命令输出的前两行中,第一行权限对应的目录是“.”,代表当前

目录,也就是/home 目录,权限为“rwxr-xr-x”,即“755”,第二行权限对应的目录是“..”,

通过这个命令,可以很清晰地看到,根目录的权限是“0666”,这才是导致 su 执行失败

的根本原因。

4 . 解决问题

知道了问题产生的原因,解决问题就非常简单,执行如下命令:

[root@localhost ~]#chmod 755 /

然后就可顺利执行 su 切换命令。

最后,做个简单的总结,这个问题主要是由于根目录没有可执行权限,而 Linux 下所有

的操作都是在根目录下进行的,进而导致/home/oracle 目录没有执行权限。其实根目录权限

的丢失对于系统中运行的每个用户存在同样的影响。因此,在权限出现问题时,一定要注意

根目录的权限。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深海天哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值