当前 auth.log 转储

当前 auth.log 转储

我尝试使用 PAM 为 sudo 使用与登录时不同的密码。

我最初是在这篇文章中工作的

设置 sudo 密码与登录密码不同

不幸的是,每次我这样做时都会遇到身份验证错误,并且我不确定出了什么问题。也许我错误地散列了密码或错误地添加到数据库,但我不确定问题是什么。

sudo 读取的配置

session    required   pam_env.so readenv=1 user_readenv=0

session    required   pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0

auth required pam_userdb.so crypt=crypt db=/var/local/sudopass/passwd.db

\#@include common-auth

@include common-account

@include common-session-noninteractive

我设置密码用于passwd -m des password测试目的,然后使用db5.3创建数据库passwd.db

db5.3_load -h /var/local/sudopass -t hash -T passwd.db

我的用户名

73o8ECeyEW3Y2(密码哈希)

然后认证错误。请注意,当我将此数据库放在我的主目录中时,无论我如何设置权限,PAM 都找不到该数据库。)

当前 auth.log 转储

我在获取身份验证错误时遇到问题,但这是 auth.log Oct 18 12:07:43 az-GlAdOS-mk11-m sudo: pam_userdb(sudo:auth): Verify useraz' 中当前存在的问题,其中包含密码

10 月 18 日 12:07:43 az-GlAdOS-mk11-m sudo: pam_userdb(sudo:auth): user_lookup: 无法打开数据库 `/var/local/sudopass/passwd.db': 没有这样的文件或目录

10 月 18 日 12:07:43 az-GlAdOS-mk11-m sudo:az:PAM 身份验证错误:服务模块中出现错误; TTY=pts/4 ; PWD=/home/az ;用户=根;命令=/bin/nano /etc/pam.d/sudo`

答案1

您可以使用targetpw中的选项sudoers,这将使 sudo 不询问您自己的密码,而是询问您要执行命令的用户的密码(在大多数情况下是root)。然后,您可以为您自己的用户和root用户帐户使用不同的密码。

在 sudoers 文件中使用以下代码片段全局启用此行为(使用 进行编辑visudo):

Defaults targetpw
ALL ALL=(ALL) ALL

第二行意味着系统上的每个用户如果知道目标用户的密码,都可以使用 sudo。如果省略它,则需要配置组的成员身份和目标的密码。 (请注意,如果您有权访问 ,则可以规避组要求su,因为它不支持此配置。)

您还可以使用以下两种变体之一,它们targetpw分别仅将该指令应用于特定用户或组:

Defaults:username targetpw
username ALL=(ALL) ALL

Defaults:%groupname targetpw
%groupname ALL=(ALL) ALL

(做不是请指定ALL ALL=(ALL) ALL您是否使用其中之一!)

答案2

您链接到的指南是 5 年前的。 PAM 不再使用 DES。尝试使用它来生成您的密码哈希:

echo pass|mkpasswd -s -m sha-512

相关内容