Linux常见系统故障:su切换用户带来的疑惑

系统 Linux
由于在线业务的需要,客户没有考虑太多就直接重启了服务器,系统重新启动后没有出现问题,可是接下来,当客户准备切换到oracle用户下启动数据库时,怎么都无法进行su切换,于是问题出现了。

[[286383]]

这是一个客户的案例,客户的一台Oracle数据库服务器突然宕机了,由于在线业务的需要,客户没有考虑太多就直接重启了服务器,系统重新启动后没有出现问题,可是接下来,当客户准备切换到oracle用户下启动数据库时,怎么都无法进行su切换,于是问题出现了。

1、案例现象

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

图1  su切换发生Permission denied错误

于是,尝试直接通过oracle用户登录系统,发现此时的oracle用户也无法登录了,出现与上面同样的错误。

2、解决思路

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

● 用户目录/home/oracle权限问题。

● su程序执行权限问题。

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

● SELinux问题导致。

● 系统根空间问题。

3、排查问题

根据上面的思路,逐一检查,考虑到su在切换到oracle用户时会读取oracle目录下的环境变量配置文件,因此,首先检查/home/oracle目录的权限是否存在问题: 

  1. [root@loaclhost home]# ls -al /home|grep oracle  
  2. drwx---- 4 oralce  oinstall 4096 01-31 10:45 oracle 

从输出可知,/home/oracle目录的属主是oracle用户,而oracle用户对这个目录具有“rwx”权限,因此,oracle用户目录的权限设置是正确的,可以排除这个问题。

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

  1. [root@loaclhost home]# 11 /bin/su  
  2. -rwsr-xr-x 1 root root 24120 2007-11-30 /bin/su 

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

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

图2  通过ldd命令检查su命令依赖的共享库文件

根据上面的操作,依次检查su命令依赖的每个库文件的权限,发现也都是正常的,都具有可执行权限,因此,共享库的问题也排除了。

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

图3  检查SELinux的设置

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

到目前为止,问题变得扑朔迷离,到底是哪里出现问题了呢?作为Linux运维人员,例行检查系统根分区状态是非常必要的,那么首先检查一下根分区的磁盘空间大小,发现剩余空间还有很多,排除空间问题。既然报的错误是权限有问题,那么只要以权限为线索,不偏离这个核心就没错,于是继续尝试检查/home目录下各个用户的权限,执行命令如图4所示。

图4  检查/home目录下各个用户的权限

从输出看每个用户的目录权限,都是“rwx------”,即“700”,完全没有问题。仔细检查思路,发现当前的目光一直停留在用户对应的目录上,而忽略了其他输出信息,而问题就藏在之前没有关注的信息中。在这个命令输出的前两行中,第一行权限对应的目录是“.”,代表当前目录,也就是/home目录,权限为“rwxr-xr-x”,即“755”,第二行权限对应的目录是“..”,也就是根目录,权限却为“rw-rw-rw-”,即“666”,此时,问题终于查找到了,原来是根目录权限问题。

将根目录权限设置为“rw-rw-rw-”,显然是不正常的。在正常情况下根目录的权限应该是“755”,为何设置成了这样,很大的可能是误操作。通过ls命令查看根目录的权限时展示不是很清楚,也容易被很多运维人员忽略,其实我们可以通过另一个命令stat来详细查看每个目录的权限,如图5所示。

图5  通过stat命令查看根目录权限

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

4、解决问题

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

  1. [root@localhost ~]# chmod 755 / 

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

最后,做个简单的总结,这个问题主要是由于根目录没有可执行权限,而Linux下所有的操作都是在根目录下进行的,进而导致/home/oracle目录没有执行权限。其实根目录权限的丢失对于系统中运行的每个用户存在同样的影响。因此,在权限出现问题时,一定要注意根目录的权限。 

 

责任编辑:庞桂玉 来源: 计算机与网络安全
相关推荐

2010-04-22 18:17:29

Aix系统故障

2014-05-09 14:33:35

2019-12-31 15:52:20

Linux文件命令

2009-12-25 10:24:14

2022-10-18 14:52:36

2019-08-19 14:51:56

Linux 系统 数据

2013-04-10 13:52:23

2011-08-29 18:25:19

Ubuntu

2019-09-06 08:37:48

LinuxGRUBWindows

2010-11-02 09:53:57

2013-08-26 09:49:10

系统故障

2011-05-05 17:03:19

硬盘故障

2019-11-06 10:00:21

Linux 技巧操作系统

2018-11-26 08:40:43

2012-12-07 10:25:29

Windows 7系统故障

2013-05-16 09:11:15

系统故障故障排查

2011-04-26 15:12:58

Windows安全模式

2009-04-26 15:56:32

vista驱动程序瘦身

2017-03-08 17:00:20

Windows 7Windows系统故障

2009-08-21 14:07:14

海缆系统故障光缆修复
点赞
收藏

51CTO技术栈公众号