oracle无法su切换的问题

客户一个oracle突然当机了,由于业务启动,客户下意识的重启了服务器,系统是起来了,准备切换到 oracle用户下启动数据库,可以怎么都无法su切换,真是火上浇油呀,描述如下:

在root用户下,su到一 个普通用户oracle,得到如下错误:

[root@localhost ~]# su -  oracle

su: warning: cannot change directory to /home/oracle: Permission denied

su: /bin/bash: Permission denied

而 oracle用户也无法通过直接登录,出现同样错误。

这是一个非常奇怪的问题,到底是什么导致的呢?思路 如下:

1,程序执行权限问题

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

3,目录权限问题

4,根空间问题。

检查/bin/bash,权限正确,检查/home/oracle权限正确,检查/lib/ld-***.so,权限也正确。

继续调 试,检查/etc/passwd,将oracle的home设置为/tmp,把/tmp设置为777,这个权限应该是最宽松的。

而su 出现同样的错误。

也就是oracle用户无法访问777权限的/tmp。

问题到底出现在哪里呢?

最后

通 过star命令,看到了问题根本,

[root@localhost ~]#stat  /

输出如下:因为你ls是看不到的。

 File: “/”

 Size: 1024            Blocks: 2          IO Block: 1024   目录

Device: 803h/2051d      Inode: 2           Links: 22

Access: (0666/drw-rw-rw-)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2007-12-01 22:28:48.000000000 +0800

Modify: 2007-12-01 22:28:34.000000000 +0800

Change: 2007-12-01 23:17:35.000000000 +0800

问题出来了,这里的权限 是错误的,X权限的丢失造成的。

[root@localhost ~]#chmod 755 /

修改后,问题消失。

产生上述问 题的方法:

第一种,chmod 666 /,可以导致。

或者,

第二种,chmod 700 /lib/ld-xxxx.so,也可 以导致su失败。

有兴趣可以自己试一下。

/ 权限的丢失对于各种运行在自己用户身份上的daemon也存 在同样的影响。

本文出自 “技术成就梦想” 博客,请务必保留此出处 http://ixdba.blog.51cto.com/2895551/526427

时间: 2024-08-01 19:28:18

oracle无法su切换的问题的相关文章

数据库主备切换-Oracle Data Guard 切换数据库无成功反馈

问题描述 Oracle Data Guard 切换数据库无成功反馈 Oracle Data Guard 切换数据库 切换主库为备库输入 Alter database commit to switchover to physical standby with session shutdown; 后不出现Database altered提示 没有任何反馈信息 这是什么原因? 解决方案 http://wenku.baidu.com/link?url=SgdMwsixAP6-wPLqV99ulf6qbi

用户管理-设置linux普通用户不能远程直接登入,需要另一个允许远程登入用户su切换

问题描述 设置linux普通用户不能远程直接登入,需要另一个允许远程登入用户su切换 出于安全考虑,要实现标题的登入方法,该怎么设置?请大虾指点-

linux中ssh无法登录可以su切换的问题解决办法

一.故障现象 接业务侧同事邮件,一台现网主机使用正确的用户名密码 ssh 登录不上(之前正常),使用其他用户 " su - 该用户 " 输入密码可以正常切换进去.而且使用该用户进行 ftp 登录也正常. 主机系统:SUSE Linux Enterprise Server 10 (x86_64) sp1 ----系统有点老旧了 问题用户:prestat ------其他用户正常 二.排查 1.chage指令查看 首先使用prestat 用户及密码进行ssh 登录尝试,发现问题同业务侧同事

ansible普通用户su切换问题总结

在之前我曾总结了一点ansible系列博文,本篇还承接之前的篇幅吧.在现网应用中,安全加固后的主机是不允许直接以root用户登陆的,而很多命令又需要root用户来执行,在不改造现网的情况下.希望通过一个普通用户先登陆,再su切到root执行.而且每台主机的普通用户和root用户的密码又不同.希望在通过ansible执行的时候不需要交互输入密码,而是直接执行后输出结果. 一.ansible hosts配置文件 在之前的系列文章中我们提到,可以把密码写到hosts配置文件,通过查询官网的相关信息了解

Spring+Mybatis多数据源配置(一)——MySQL与Oracle通过配置切换

在小型项目中,一般配置一个数据库,也就是一个mybatis数据源,但是有时候需要同时支持两种数据库,比如mysql和oracle. 最笨的方法就是配置两个spring配置文件,然后根据不同的部署,采用不同的配置文件,其实这两个配置文件可以合成一个配置文件,通过java的properties文件进行配置. 首先说明下配置单个数据库,也就是单个数据源的配置. 首先看一下spring的配置文件applicationContext.xml(这里采用的是spring+mybatis,所以有关数据库的及my

如何添加非oracle用户到dba组和oinstall组

oracle用户所拥有的权限比较大,因此有些时候需要使用非oracle用户来完成相关数据库管理工作.尤其是多个人维护系统或数据库时,有必要为其添加不同的用户,然后将这些用户添加到dba组.同时这些用户也可以根据自己的喜好来设定不同的环境变量.本文描述了在linux下创建新用户以及使用新用户来连接数据库等. #查看当前的oracle用户id及其所属组 oracle@SZDB:~> id uid=2000(oracle) gid=1000(oinstall) groups=1000(oinstall

Oracle启动、建立表空间、用户、授权、数据库导入导出使用教程

  数据库最基本的操作就是数据的导入导出及建立表空间.用户.授权了,今天小编也为各位介绍一下关于Oracle启动.建立表空间.用户.授权.数据库导入导出的命令吧. **启动**1.启动数据库实例,分为两步:第一步,启动监听;第二步,启动数据库实例. 1.1进入到sqlplus启动实例{{{ [oracle@redhat ~]$ su - oracle --"切换到oracle用户" [oracle@redhat ~]$ lsnrctl start --"打开监听"

Linux系统中的切换用户命令宝典

#1:runuser命令 runuser命令使用一个替代的用户或者组ID运行一个Shell.这个命令仅在root用户时有用. 仅以会话PAM钩子运行,并且没有密码提示.如果用一个非root用户,并且该用户没有权限设置user ID,这个命令将会因为程序没有setuid而失败.因runuser不会运行认证和账户PAM钩子,它比su更底层. 语法: 代码如下: runuser -l userNameHere -c 'command' runuser -l userNameHere -c '/path

Centos6 下Oracle 11g R2 安装

1准备 CentOS-6.5-x86_64-bin-DVD1 linux_11gR2_database_1of2 linux_11gR2_database_2of2 VMware Workstation 10.0.2 SSH Secure Shell Client instantclient_11_2 plsqldev10052安装虚拟机及CentOS (1)安装VMware Workstation (2)安装CentOS,主机命名为:oracledb (3)磁盘需要大于30G(经验值) (4)