su: /bin/bash: Permission denied带来的疑惑
>客户一个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也存在同样的影响。
su: /bin/bash: Permission denied带来的疑惑的更多相关文章
- su: /bin/bash: Permission denied
https://bbs.archlinux.org/viewtopic.php?id=105541 New user created as: groupadd mygroupuseradd -s /b ...
- 创建新用户后无法切换 su: failed to execute /bin/bash: Permission denied
创建新用户后无法切换 su: failed to execute /bin/bash: Permission denied 当使用 su username 从root切换用户时显示 su: fai ...
- 远程ssh登陆时报错:/bin/bash: Permission denied
远程普通用户ssh登录时,提示/bin/bash: Permission denied,用户名mas,密码正确. 首先上个图,用户远程登录步骤,转自http://www.tldp.org/LDP/LG ...
- su - oracle /bin/bash: Permission denied
1) 以root身份执行 stat / 命令 查看权限是否正确 2) chmod 755 / 3) chmod 755 /bin/bash
- /bin/ls: Permission denied
[root@test_node1 ~]# crontab -lno crontab for root[root@test_node1 ~]# cd /home/[root@test_node1 hom ...
- Centos7 JDK安装过程中 解决java -version 报错: bash: /home/jdk1.8.0_161/bin/java: Permission denied
1.执行Linux命令 -----vim /etc/profile 编辑profile 文件,在里面添加: #set java enviroment JAVA_HOME=/opt/JavaHome ...
- Centos 7 JDK验证 解决java -version 报错: bash: /home/jdk1.8.0_161/bin/java: Permission denied
2.vim /etc/profile 编辑profile 文件,在里面添加: #set java enviroment JAVA_HOME=/usr/java/jdk1.8.0_144 JRE_H ...
- mac os系统go安装:go install github.com/nsf/gocode: open /usr/local/go/bin/gocode: permission denied
gocode是go语言代码自动提示工具 安装时进入src目录执行:go get -u github.com/nsf/gocode 出现: github.com/nsf/gocode (download ...
- hadoop3: mkdir: cannot create directory `/usr/local/hadoop/bin/../logs’: Permission denied
1.hadoop3: mkdir: cannot create directory `/usr/local/hadoop/bin/../logs': Permission denied把所有Datan ...
随机推荐
- Verdi:内存不足
如果进行Verdi compile时,出现memory资源不够用.有可能case中出现了问题(或许发生了死循环,造成内存严重占用),此时尽量瘦身TC_FILE_LIST文件,缩小问题case的范围.
- 南邮CTF--md5_碰撞
南邮CTF--难题笔记 题目:md5 collision (md5 碰撞) 解析: 经过阅读源码后,发现其代码是要求 a !=b 且 md5(a) == md5(b) 才会显示flag,利用PHP语言 ...
- Haybale Stacking(差分数组 + 求中位数的一些方法 + nth_element)
题意: 给定N个初始值为0的数, 然后给定K个区间修改(区间[l,r] 每个元素加一), 求修改后序列的中位数. 分析: K个离线的区间修改可以使用差分数组(http://www.cnblogs.co ...
- NowCoder栗酱的连通图(最小生成树, 结论)
链接: https://www.nowcoder.com/acm/contest/52/K 题意: 给定n个点,每个点有自己的权值, 然后让你添加n-1条边,使其边权和最大, 边权的定义是两点的点权和 ...
- python基础——7(函数)
一.函数的定义(函数一定是先定义,后引用) 函数是完成特定功能的代码块. def:声明函数的关键字 fun:函数变量名 ():参数列表,参数可以是0-n个,但是()不能丢 函数体:实现功能的具体代码 ...
- wps左侧显示目录
单击视图----文档结构图,在下拉选项中选择靠左即可,如图所示
- HDU 3062 简单的2-SAT问题
在2-SAT,最让我纠结的还是添加有向线段的函数了 void add_clause(int i,int a,int j,int b){ int m=2*i+a; int n=2*j+b; ...
- SPOJ1812 - Longest Common Substring II(LCS2)
Portal,Portal to 洛谷 Description 给出\(n(n\leq10)\)个仅包含小写字母的字符串\(s_1..s_n(|s_i|\leq10^5)\),求这些字符串的最长公共子 ...
- 【二分+交互】codeforces B. Glad to see you!
codeforces.com/contest/809/problem/B 只需要找到2个被选中的,首先,注意到将区间二等分时左侧区间为[l,mid],右侧区间为[mid+1,r],dui(mid,mi ...
- Codeforces 549C The Game Of Parity【博弈】
C语言纠错大赛的一道题,正好拿来补博弈~~ 给的代码写的略奇葩..不过还是直接在上面改了.. 题目链接: http://codeforces.com/problemset/problem/549/C ...