Linux主机root切换用户获取$?结果异常案例

1. 问题描述

首先是NBU备份I2000数据库时,监控页面查看到总是失败,但事实上,rman备份操作已经完成,只是最后取$?时异常导致而已。

其次,在一次业务升级中,ideploy工具自动升级之前做的环境检查,各个部件都检查不通过,无法自动升级,最后手工做的升级,几百块单板,真是悲剧。

2. 问题现象

NDMC21:~ # su - sshusr -c "ls";echo $? 
bin breeze check.sh Documents ideploy_file_history nohup.out public_html 
1

可以看到,正常来说,最后取$?时,应该返回0才对的。

3. 问题分析

针对这个问题,特地向SuSE原厂提了个case,也收集了各方面日志,甚至是strace的日志,问题一直无法定位。

我觉得这个问题以前不存在,最近才出现,应该是与近期的安全加固有极大的关系,于是让做安全加固的兄弟对OS层面的所有操作都整理出来。

结果为:主要是由于/etc/security目录权限被修改了,/etc/security   -- 原来权限:755,做了安全加固后,权限被修改为:600。

我在几台主机上测试,都是OK的:

NDMC21:~ # ls -ld /etc/security/ 
drw------- 2 root root 368 Jul 12 00:24 /etc/security/
NDMC21:~ # su - sshusr -c "ls";echo $? 
bin breeze check.sh Documents ideploy_file_history nohup.out public_html 
1
NDMC21:~ # chmod 755 /etc/security 
NDMC21:~ # su - sshusr -c "ls";echo $? 
bin breeze check.sh Documents ideploy_file_history nohup.out public_html 
0

blog地址:http://blog.csdn.net/hw_libo/article/details/38979791

-- Bosco  QQ:375612082

---- END ----

-------------------------------------------------------------------------------------------------------

版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

时间: 2024-10-07 18:20:50

Linux主机root切换用户获取$?结果异常案例的相关文章

linux使用su切换用户提示 Authentication failure的解决方法& 复制文件时,报cp: omitting directory `XXX'

linux使用su切换用户提示 Authentication failure的解决方法:这个问题产生的原因是由于ubtun系统默认是没有激活root用户的,需要我们手工进行操作,在命令行界面下,或者在终端中输入如下命令: sudo passwd Password:你当前的密码 Enter new UNIX password:这个是root的密码Retype new UNIX password:重复root的密码然后会提示成功的信息. 在说明一点,使用su和sudo是有区别的,使用su切换用户需要

Linux系统中切换用户身份su与sudo的用法与实例

日常操作中为了避免一些误操作,更加安全地管理系统,通常使用的用户身份都为普通用户,而非root.当需要执行一些管理员命令操作时,再切换成root用户身份去执行. 普通用户切换到root用户的方式有:su和sudo. 1,su - (su为switch user,即切换用户的简写) 格式:su -l USERNAME(-l为login,即登陆的简写) -l可以将l省略掉,所以此命令常写为su - USERNAME 如果不指定USERNAME(用户名),默认即为root,所以切换到root的身份的命

Linux su sudo(切换用户)

命令su 语法 : su [-] username 后面可以跟 '-' 也可以不跟,普通用户su不加username时就是切换到root用户,当然root用户同样可以su到普通用户. '-' 这个字符的作用是,加上后会初始化当前用户的各种环境变量,关于环境变量这部分内容阿铭放在后面的章节中讲解. 下面阿铭做个简单的实验来说明加与不加 '-' 的区别: [[email protected] ~]$ pwd /home/test [[email protected] ~]$ su 密码: [[ema

linux使用su切换用户提示 Authentication failure的解决方法

刚刚安装的虚拟机,使用的ubtun系统,进如操作系统后,简单地尝试了一下,发现无法使用shutdown命令进行关机,并且无法进行su命令,提示 Authentication failure 这个问题产生的原因是由于ubtun系统默认是没有激活root用户的,需要我们手工进行操作,在命令行界面下,或者在终端中输入如下命令: sudo passwd Password:你当前的密码 Enter new UNIX password:这个是root的密码 Retype new UNIX password:

Linux命令之切换用户

一.从 user 用户切换到 root 用户 不管是用图形模式登录 Ubuntu,还是命令行模式登录,我们会发现缺省的用户是 user,但是当我们需要执行一些具有 root 权限的操作(如修还系统文件)时,经常需要用 sudo 授权,感觉很麻烦,此时我们可以切换到 root 用户,只需要简单的执行 sudo su 即可. 1 [email protected]:~$ sudo su 2 [email protected]:/home/hadoop# 注意:出于安全考虑,默认时 Ubuntu 的

linux问题: 切换用户之后变成-bash-4.1$

新增用户 git 添加用户 #sudo useradd -m -s /bin/bash -g group loginname -m 创建home目录 (不加这个要手动添加目录,不然会出现No directory,Logging in with HOME=/ ) -s /bin/bash 使用bash( 默认为 /bin/sh 使用默认不会在 $ 符前面出现[email protected]) -g 组 然后使用passwd更改用户密码 su git 后 变成 : bash-4.1$ 上网搜索解决

详细讲解Linux切换用户su指令误区

1.背景 为了安全起见,通常在Linux环境下进行的一般作业建议使用一般账号 这是因为root账号的权限过于庞大,常常会因为不小心的误操作导致系统错误,严重了还会致使系统瘫痪.崩溃. 因此建议只有在需要时才切换到root账号下进行相关操作. su是Linux环境下切换用户的操作指令 2.su指令 很多朋友在使用该指令时,往往使用如下形式: 例:从一般账号moonlit切换到root账号 $ su 那么这么做有什么不对的地方么? 我们这就来观察下账号切换前后的数据对比. [[email prote

Linux-解决putty无法直接使用root用户远程登录linux主机的问题

问题描述: 有时,在使用putty连接远程linux主机时会发现,无法直接使用root登录, 但是可以使用其他用户登录,然后切换至root用户. 解决办法: 1.修改配置文件 vi /etc/ssh/sshd_config  2.查找PermitRootLogin项, 设置为 PermitRootLogin yes  3.保存退出  4.重启ssh服务,问题解决

linux 切换用户身份、su、sudo、/etc/sudoers

Linux系统中,有时候普通用户有些事情是不能做的,除非是root用户才能做到.这时就需要用su命令临时切换到root身份来做事了. su:substitute['s?bst?tju?t]代替 user su 的语法为: su [OPTION选项参数] [用户] -, -l, --login 登录并改变到所切换的用户环境: -c, --commmand=COMMAND 执行一个命令,然后退出所切换到的用户环境: 用su命令切换用户后,可以用 exit 命令或快捷键[Ctrl+D]可返回原登录用户