小编Kon*_*ner的帖子

我怎样才能su到没有登录shell的用户?

问题

在Debian 10中我想创建一个无法直接登录的用户。人们应该只能通过使用su二进制文件来访问用户。在我的 Ubuntu 18.04 设置中,我确实做到了这一点,并且它的工作非常顺利,但在 Debian 10 中我无法这样做。

暗示

能够登录的用户将没有使用权限sudo

我做了什么

我已经使用默认 shell 设置了一个用户/usr/sbin/nologin。但是当我尝试访问该用户时,su --shell=/bin/bash user我无法这样做。

最小的例子

# useradd --shell /usr/sbin/nologin locked

# passwd locked
Enter new UNIX password: *secret*
Retype new UNIX password: *secret*
passwd: password updated successfully

$ su --shell /bin/bash locked
Password: *secret*
This account is currently not available.
Run Code Online (Sandbox Code Playgroud)

为什么这在 Debian 中不再起作用?

编辑1:

输出/etc/shells

$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash …
Run Code Online (Sandbox Code Playgroud)

debian su nologin

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

debian ×1

nologin ×1

su ×1