首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux -创建没有密码的用户(登录时没有密码提示)

问Linux -创建没有密码的用户(登录时没有密码提示)
EN

Unix & Linux用户
提问于 2020-02-08 23:01:46
回答 1查看 3K关注 0票数 1

我发现很多文章提到用户在使用passwd -d后没有密码。虽然在我的一些系统上,它确实能工作(我可以在一些系统上使用su (我可以在不提供密码的情况下从非特权帐户到它们)。我尝试了*和空,但这些都不起作用:

代码语言:javascript
复制
lapsio@pi-car1:~ $ sudo useradd potato -p '*'
lapsio@pi-car1:~ $ su potato
Password: 
su: Authentication failure
lapsio@pi-car1:~ $ sudo passwd -d potato
passwd: password expiry information changed.
lapsio@pi-car1:~ $ su potato
Password: 
su: Authentication failure
lapsio@pi-car1:~ $

请注意,我不是在谈论空密码(可以用空字符串哈希设置)。我也不是在谈论锁定帐户。我希望在这样的情况下,Password:提示符在su和getty中都没有出现,而I能够立即登录到该帐户,<#>without被要求输入密码。它似乎适用于较旧的系统。是否有控制此行为的系统级配置?

为了表明这一点,我期待着以下行为:

代码语言:javascript
复制
lapsio@pi-car1:~ $ su potato
potato@pi-car1:~ $ #I'm potato user here, without being asked for password

有点像当您从根su时工作,除了我希望能够从任何非特权帐户su以及。并在没有查看密码提示的情况下从getty登录,就像您登录到Arch liveCD上的根帐户一样。

是的,我知道这是可怕的安全实践,我知道这种做法的后果,但我仍然想知道如何做到这一点。

EN

回答 1

Unix & Linux用户

发布于 2020-02-10 05:34:38

su的PAM配置通常位于/etc/pam.d/su,它可以使用@include指令引用同一目录中的其他文件。在某个时候,将有一行以auth开头,并提到pam_unix.so。在较早的发行版中,它可能包括一个允许空密码的nullok选项;现代发行版通常使用nullok_secure,只有在使用/etc/securetty中列出的一个TTY设备进行“身份验证”时才允许空密码。此外,nullok选项的实现可能会有所不同。

为了允许su绝对允许在没有密码提示的情况下访问特定帐户,您可以添加如下一行:

代码语言:javascript
复制
auth sufficient pam_succeed_if.so quiet_fail user = potato

(注意: user、=和potato之间的空格非常重要!)

为了在pam_unix.so之前生效,并且只使用su命令,该行应该放在之前的/etc/pam.d/su <#>任何@include指令或以auth开头的其他行中。

但是,通过su的S配置创建这样的快捷方式有点冒险,如果不首先了解PAM配置应该如何在未指定的Linux发行版中工作,那么在使用之前要仔细测试。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/566513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档