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
/bin
检查文件夹的权限# ls -ld /bin drwxr-xr-x 2 root root 4096 May 27 21:39 /bin
检查所有可用 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
尝试另一个 shell
最好的是
busybox
因为它是一个静态构建(不需要 .so 库)su newuser -s /bin/static-sh
接下来是
dash
,低依赖项并默认安装su newuser -s /bin/dash
检查库及其父文件夹的权限,您可以使用获取列表
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
例如,您可以检查文件的权限和所有者。
答案4
遇到过类似的问题,问题是 /etc/passwd 中单个用户的额外条目。这是在我们的 ldap 登录服务器进程发生一些更改后发生的,因此可能只是输入了错误的条目。我想这可能会对其他人有所帮助,所以我至少应该提一下。