无法使用 root 权限进行 SU:`/bin/bash:权限被拒绝`

无法使用 root 权限进行 SU:`/bin/bash:权限被拒绝`
root@frankfurt:~# sudo adduser newuser
添加用户“newuser”...
添加新组“newuser”(1001)...
添加新用户‘newuser’(1001)及其组‘newuser’...
创建主目录“/home/newuser”...
从 `/etc/skel' 复制文件...
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:密码更新成功
更改新用户的用户信息
输入新值,或按 ENTER 获取默认值
    全名[]:new
    房间号 []:
    工作电话 []:
    家庭电话 []:
    其他 []:
信息正确吗? [Y/n] y
root@frankfurt:~# su newuser
无法执行/bin/bash:权限被拒绝
root@frankfurt:~#

谢谢。

答案1

像这样更改这些文件夹的权限,现在您就可以转换为另一个用户。

chmod 755 /
chmod 755 /bin
chmod 755 /lib

答案2

  1. /bin检查文件夹的权限

    # ls -ld /bin
    drwxr-xr-x 2 root root 4096 May 27 21:39 /bin
    
  2. 检查所有可用 shell 的权限

    # ls -l /bin/*sh
    -rwxr-xr-x 1 root root 1037464 Sep  1  2015 /bin/bash
    -rwxr-xr-x 1 root root  154072 Feb 17 21:25 /bin/dash
    lrwxrwxrwx 1 root root       4 Sep  1  2015 /bin/rbash -> bash
    lrwxrwxrwx 1 root root       4 Feb 17 21:25 /bin/sh -> dash
    lrwxrwxrwx 1 root root       7 Aug 19  2015 /bin/static-sh -> busybox
    

    有些链接我们应该检查它们的目标

    # ls -lL /bin/*sh
    -rwxr-xr-x 1 root root 1037464 Sep  1  2015 /bin/bash
    -rwxr-xr-x 1 root root  154072 Feb 17 21:25 /bin/dash
    -rwxr-xr-x 1 root root 1037464 Sep  1  2015 /bin/rbash
    -rwxr-xr-x 1 root root  154072 Feb 17 21:25 /bin/sh
    -rwxr-xr-x 1 root root 1964536 Aug 19  2015 /bin/static-sh
    
  3. 尝试另一个 shell

    最好的是busybox因为它是一个静态构建(不需要 .so 库)

    su newuser -s /bin/static-sh
    

    接下来是dash,低依赖项并默认安装

    su newuser -s /bin/dash
    
  4. 检查库及其父文件夹的权限,您可以使用获取列表ldd

    # ldd /bin/bash
        linux-vdso.so.1 =>  (0x00007ffdefb5a000)
        libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f714bbbd000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f714b9b9000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f714b5ef000)
        /lib64/ld-linux-x86-64.so.2 (0x000055c6bc494000)
    
    # ls -ld /lib /lib/x86_64-linux-gnu /lib64
    drwxr-xr-x 26 root root  4096 May 15 07:41 /lib
    drwxr-xr-x  2 root root  4096 May 14 15:52 /lib64
    drwxr-xr-x  3 root root 16384 May 27 21:39 /lib/x86_64-linux-gnu
    
    # ls -l /lib/x86_64-linux-gnu/libtinfo.so.5 /lib/x86_64-linux-gnu/libdl.so.2 /lib/x86_64-linux-gnu/libc.so.6 /lib64/ld-linux-x86-64.so.2
    lrwxrwxrwx 1 root root 32 Apr 14 23:16 /lib64/ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-2.23.so
    lrwxrwxrwx 1 root root 12 Apr 14 23:16 /lib/x86_64-linux-gnu/libc.so.6 -> libc-2.23.so
    lrwxrwxrwx 1 root root 13 Apr 14 23:16 /lib/x86_64-linux-gnu/libdl.so.2 -> libdl-2.23.so
    lrwxrwxrwx 1 root root 15 Feb 19 09:23 /lib/x86_64-linux-gnu/libtinfo.so.5 -> libtinfo.so.5.9
    

    它们只是我们需要验证目标文件的链接

    # ls -lH /lib/x86_64-linux-gnu/libtinfo.so.5 /lib/x86_64-linux-gnu/libdl.so.2 /lib/x86_64-linux-gnu/libc.so.6 /lib64/ld-linux-x86-64.so.2
    ##or
    # ls -lL /lib/x86_64-linux-gnu/libtinfo.so.5 /lib/x86_64-linux-gnu/libdl.so.2 /lib/x86_64-linux-gnu/libc.so.6 /lib64/ld-linux-x86-64.so.2
    -rwxr-xr-x 1 root root  162632 Apr 14 23:16 /lib64/ld-linux-x86-64.so.2
    -rwxr-xr-x 1 root root 1864888 Apr 14 23:16 /lib/x86_64-linux-gnu/libc.so.6
    -rw-r--r-- 1 root root   14608 Apr 14 23:16 /lib/x86_64-linux-gnu/libdl.so.2
    -rw-r--r-- 1 root root  167240 Feb 19 09:23 /lib/x86_64-linux-gnu/libtinfo.so.5
    

答案3

您可能遇到了 /lib(或 /lib64)内文件的权限问题和/或 /dev 内文件的权限问题。

检查它们是否属于 root,以及 de lib 目录中的至少一些文件是否可由所有用户执行。尝试与“干净”的操作系统进行比较,以验证哪些文件需要由所有人执行。

ls -l /lib例如,您可以检查文件的权限和所有者。

参考链接:http://www.tldp.org/LDP/LG/issue52/okopnik.html

答案4

遇到过类似的问题,问题是 /etc/passwd 中单个用户的额外条目。这是在我们的 ldap 登录服务器进程发生一些更改后发生的,因此可能只是输入了错误的条目。我想这可能会对其他人有所帮助,所以我至少应该提一下。

相关内容