Amazon Linux 上的身份验证失败

Amazon Linux 上的身份验证失败

当我尝试输入任何帐户的密码时,身份验证失败。我使用 ssh 登录到我的 AWS EC2 实例。

过了一会儿,我检查了存储用户信息的文件的权限,发现了一些奇怪的情况。

我认为这不正常:

$ ls -l /etc/passwd /etc/shadow

结果如下:

-rw-r--r-- 1 root root 1402 Oct  7 10:58 /etc/passwd
---------- 1 root root  838 Oct  7 10:58 /etc/shadow

这可能是问题的原因,因为没有用户可以读/写该文件。在我看来,正常的输出/etc/shadow应该是这样的。

-rw-r----- 1 root root  838 Oct  7 10:58 /etc/shadow

这可能是问题所在吗?我该如何解决它?

操作系统配置:

NAME="Amazon Linux AMI"
VERSION="2015.09"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2015.09"
PRETTY_NAME="Amazon Linux AMI 2015.09"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2015.09:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
Amazon Linux AMI release 2015.09

答案1

Amazon Linux 是 RHEL 克隆,使用 RPM 定义已安装文件的权限。您可以使用该rpm -qf /etc/shadow命令来确定所有权。这表明它/etc/shadow是包的一部分setup。然后,您可以使用 RPM 数据库来查询该文件的权限。rpmlsrpmdevtools 包中有一个程序可以执行此操作,但如果您知道正确的语法,则可以使用简单的 RPM 来完成此操作:

$ rpm -q --qf='[%-11{filemodes:perms} %-8{fileusername} %-8{filegroupname} %{filenames}\n]' setup | grep /etc/shadow
----------  root     root     /etc/shadow

这表明 /etc/shadow 的模式应该是 0000。您不应该尝试将其更改为其他模式。 PAM 堆栈完全能够读取影子文件。你一定还有其他问题。

答案2

就像 @lese 说的,尝试一下:

chmod 640 /etc/shadow
chown root:shadow /etc/shadow

如果它给你“不允许操作”尝试:

lsattr /etc/shadow

如果显示----i--------e-则再次运行chattr -i /etc/shadow并 chmod 。

答案3

是的,你是对的,你的权限/etc/shadow似乎是错误的,但这取决于你运行的发行版。请澄清这一点,可以通过以下命令找到:

# cat /etc/*release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=17.2
DISTRIB_CODENAME=rafaela
DISTRIB_DESCRIPTION="Linux Mint 17.2 Rafaela"
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
cat: /etc/upstream-release: Is a directory

根据我的发行版(实际上是 Linux Mint 17.2 Rafaela),默认和正确的权限是: -rw-r----- 640 root Shadow/etc/shadow

您可以尝试通过使用 root 超级权限运行以下命令来修复它们:

chmod 640 /etc/shadow
chown root:shadow /etc/shadow

答案4

看起来像是影子配置问题,

你可以尝试一下shadowconfig on命令

相关内容