linux 执行命令提示无权限排查思路

问题描述

在root用户下su到普通用户出现权限问题

[root@hehe ~]# su - zh
su: warning: cannot change directory to /home/zh: Permission denied
su: failed to execute /bin/bash: Permission denied

解决思路

由于报错是权限问题,所以需要从文件系统权限着手排查,思路如下:

  • 用户家目录权限问题
  • su命令执行权限问题
  • 程序依赖的共享库权限问题
  • SELinux导致
  • 系统根目录权限问题

排查过程

1、检查用户家目录权限

[root@hehe ~]# ll -a /home/|grep zh
drwx------   2 zh   zh     62 May 10 23:24 zh

由输出可知 zh用户对自己家目录具有rwx权限,所以用户家目录权限没有问题。

2、检查su命令权限

[root@hehe ~]# ll `which su`
-rwsr-xr-x 1 root root 62104 Nov  9  2019 /usr/bin/su

可以看到su命令也是具有S位的,权限也没有问题

3、检查su命令的共享库权限

[root@hehe ~]# ldd `which su`
    linux-vdso.so.1 (0x00007ffe3c94a000)
    libpam.so.0 => /lib64/libpam.so.0 (0x00007f2282542000)
    libpam_misc.so.0 => /lib64/libpam_misc.so.0 (0x00007f228233e000)
    libutil.so.1 => /lib64/libutil.so.1 (0x00007f228213a000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f2281d77000)
    libaudit.so.1 => /lib64/libaudit.so.1 (0x00007f2281b4d000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f2281949000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f228295d000)
    libcap-ng.so.0 => /lib64/libcap-ng.so.0 (0x00007f2281743000)
[root@hehe ~]# ll /lib64/ld-linux-x86-64.so.2 lrwxrwxrwx 1 root root 10 Feb 5 00:06 /lib64/ld-linux-x86-64.so.2 -> ld-2.28.so

 [root@hehe ~]# ll /lib64/ld-2.28.so
 -rwxr-xr-x 1 root root 385384 Feb 5 00:17 /lib64/ld-2.28.so

可以看到共享库文件也都是具有执行权限的,也可以排除了。

4、检查SELinux

[root@hehe ~]# getenforce 
Disabled

SELinux也是关闭了,也可以排除

5、检查/home目录的权限

![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/8f2edb1dad35d5604d2e9506671c6e8c.png#pic_center)

 可以看到根目录的权限是666,明显除了问题,没有执行权限。只有上级目录具有执行权限时,才能进入到其子目录。

解决问题

[root@hehe ~]# chmod 755 /
[root@hehe ~]# su - zh
Last login: Sun May 10 23:25:09 CST 2020 on pts/4
[zh@hehe ~]$ 

如果要检查是谁操作的,可以通过stat命令和w命令查看:

[root@hehe ~]# stat /
  File: /
  Size: 4096          Blocks: 8          IO Block: 4096   directory
Device: fd01h/64769d    Inode: 128         Links: 21
Access: (0666/drw-rw-rw-)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-05-10 23:30:28.724451727 +0800
Modify: 2020-05-09 17:30:21.391659708 +0800
Change: 2020-05-10 23:25:03.372759080 +0800
 Birth: -

 可以看到是哪个用户最后一个登陆的,登陆的IP

对于优化过的系统可以查看命令历史

命令历史优化

编辑/etc/bashrc文件,加入如下三行:
HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT="%Y%m%d-%H%M%S: "  或者HISTTIMEFORMAT="%Y%m%d %T "
export HISTTIMEFORMAT

我这里是测试环境没有优化,就不贴图了

[root@hehe ~]# less .bash_history
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一只晨兴夜不得寐的运维人

你的打赏,是我今晚餐桌上的鸡腿

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

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

打赏作者

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

抵扣说明:

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

余额充值