单个用户无法登录,更改密码无效

单个用户无法登录,更改密码无效

我已经使用更改了用户(user1)的密码root

passwd user1

但当我尝试ssh user@localhost或通过gdmtty总是失败

日志journalctl显示

Failed password for user1 from ::1 
FAILED LOGIN 1 FROM tty3 FOR user1, Authentication failure
pam_unix(gdm-password:auth): conversation failed
pam_unix(gdm-password:auth): auth could not identify password for [user1]

我正在使用全新的 Arch Linux 安装(64 位)

答案1

所以解决方案是,更改/etc/passwd文件

foruser1的 shell from /usr/bin/bashinto/bin/bash

答案2

/etc/shells解决方案位于中记录的文件中man 5 shells

简而言之“[that] 是一个文本文件,其中包含有效登录 shell 的完整路径名”。

传统上/etc/shells仅包含/bin/sh/bin/bash

因此,为了“修复”该问题,您可以添加/usr/bin/bash/etc/shells更改用户的 shell,例如/bin/bash使用chsh.

现代发行版具有/bin符号链接,/usr/bin因此前一个修复应该是正确的。请注意,这可能会破坏许多程序使用该getusershell()调用但具有硬编码的 shell 路径。

不过,您应该依赖的唯一的 shell 是/bin/sh

答案3

1.以 root 身份登录 以 root 身份输入用户名,为了简单起见,我更喜欢文本(tty# ex: tty2)模式。通过
Ctrl + Alt + F#(任意功能键 F2-F7)打开它

username : root
password : 

2.检查用户的 shell

$less /etc/passwd

你可能会看到类似的东西

mr_rathod:x:1000:1000:Abhay Raj Singh Rathod:/home/mr_rathod:/usr/bin/bash (unaccessible shell)
mr_rathod:x:1000:1000:Abhay Raj Singh Rathod:/home/mr_rathod:/bin/zsh (unvailable shell)

3.更改密码文件通过编辑 passwd 文件修复它

# nano /etc/passwd

将外壳更改为/bin/bash可以像大多数基于 UNIX 的系统中一样工作

相关内容