AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[pam](unix)

Martin Hope
s0me0ne
Asked: 2024-12-07 06:52:37 +0800 CST

无法登录 Manjaro 上的虚拟控制台:“unix_chkpwd[129255]:用户密码检查失败”

  • 5

自从几个月前我从 Ubuntu 切换到 Manjaro 以来,我遇到了一个奇怪的问题:我无法登录虚拟控制台,总是收到“登录不正确”的消息,尽管所有其他身份验证都运行正常。今天,我终于决定解决这个问题,但没有成功。

getty似乎运行正常并按login预期调用。

$ ps auxww |grep getty
root      129384  0.0  0.0   7176  3880 tty3     Ss+  22:47   0:00 /sbin/agetty -o -p -- \u --noclear - linux

我检查过没有剩余的/etc/nologin或/var/run/nologin,并且相关配置(/etc/login.defs,/etc/security/*)完全未受影响并且是相当宽松的发行版默认值。

尽管如此,当我尝试登录 VC 时,我得到(在启用debug某些 PAM 模块的选项后):

dic 06 22:46:53 s0me0ne login[128494]: pam_systemd_home(login:auth): pam-systemd-homed authenticating
dic 06 22:46:53 s0me0ne login[128494]: pam_systemd_home(login:auth): New sd-bus connection (system-bus-pam-systemd-home-128494) opened.
dic 06 22:46:53 s0me0ne login[128494]: pam_systemd_home(login:auth): systemd-homed is not available: Could not activate remote peer 'org.freedesktop.home1': activation request failed: unknown unit
dic 06 22:46:53 s0me0ne login[128494]: pam_unix(login:auth): username [s0me0ne] obtained
dic 06 22:46:55 s0me0ne unix_chkpwd[129255]: password check failed for user (s0me0ne)
dic 06 22:46:55 s0me0ne login[128494]: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=/dev/tty3 ruser= rhost=  user=s0me0ne
dic 06 22:46:56 s0me0ne login[128494]: FAILED LOGIN 1 FROM tty3 FOR s0me0ne, Authentication failure

我仔细检查了unix_chkpwd系统中存在的所有实例是否都是 SUID root 并且都是指向同一个二进制文件的硬链接:

$ ls -li /usr/bin/unix_chkpwd /sbin/unix_chkpwd                                                                                                                                               
220202420 -rwsr-sr-x 1 root root 26672 18 nov 12.58 /sbin/unix_chkpwd
220202420 -rwsr-sr-x 1 root root 26672 18 nov 12.58 /usr/bin/unix_chkpwd

然后我回想起以前的好事pamtester,尝试了一下:

$ pamtester -v login s0me0ne authenticate                                                                                                                                                                                                                                                                 pamtester: invoking pam_start(login, s0me0ne, ...)
pamtester: performing operation - authenticate
Password: 
pamtester: successfully authenticated

运行良好,PAM 很正常,日志中没有错误。

我尝试的最后一件事是手动测试unix_chkpwd功能本身:

$ mkfifo /tmp/pw
$ echo -ne 'mypassword\0' >/tmp/pw &
[1] 137112
$ /sbin/unix_chkpwd s0me0ne nullok </tmp/pw
[1]  + done       echo -ne 'mypassword\0' > /tmp/pw
$ echo $?
0

到现在为止,我完全陷入了困境,摸不着头脑。任何想法都值得感激。

pam
  • 1 个回答
  • 30 Views
Martin Hope
Dr.Doofenshmirtz
Asked: 2024-07-04 21:16:29 +0800 CST

使用 PAM 更新密码策略是否会强制现有用户在下次登录时更改密码?

  • 5

我计划使用以下规则在 SUSE 服务器上配置 PAM 配置文件:

现行规则是:

password  required pam_cracklib.so dcredit=-1 ucredit=-1 ocredit=-1 lcredit=0 minlen=9

修改后的规则为:

password  required pam_cracklib.so dcredit=-1 ucredit=-1 ocredit=-1 lcredit=0 minlen=16

minlen 将会增加,并且有许多现有用户的当前密码长度小于新的最小长度。

PAM 配置并重新启动服务器后,现有用户是否会遇到登录困难或被迫更改当前密码?

如果您不介意分享您的知识,我也将非常感激任何官方文件来确认您的答案。

谢谢。

pam
  • 1 个回答
  • 37 Views
Martin Hope
biochem_fan
Asked: 2024-04-03 16:14:07 +0800 CST

即使启用了 LDAP,为什么 pam_unix.so 仍设置为“必需”?

  • 6

在我的 Rocky Linux 9.3 机器上,LDAP 身份验证已启用authselect并且工作正常。我可以通过本地帐户和仅限 LDAP 的帐户通过 ssh 登录到这台计算机。然而,/etc/pam.d/password-auth包含在 中的my/etc/pam.d/sshd 似乎与当前的行为相矛盾。它包含了:

account     required                                     pam_unix.so
account     sufficient                                   pam_localuser.so
account     sufficient                                   pam_usertype.so issystem
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
account     required                                     pam_permit.so

仅 LDAP 帐户会失败pam_unix.so(不是吗?)。因为pam_unix.so是required,在我看来,仅 LDAP 帐户将无法通过整个account测试(即使pam_sss.so成功)。然而,仅 LDAP 帐户在现实中确实有效。为什么?

man pam.conf说:

必需:此类 PAM 的失败最终将导致 PAM-API 返回失败

足够:如果此类模块成功并且先前所需的模块没有失败,则PAM 框架将成功返回给应用程序

好的:这告诉 PAM 管理员认为此返回代码应该直接影响整个模块堆栈的返回代码。换句话说,如果堆栈的先前状态将导致返回 PAM_SUCCESS,则模块的返回代码将覆盖该值。请注意,如果堆栈的先前状态保存了某个指示模块故障的值,则此“ok”值将不会用于覆盖该值。 (我强调的)

同样在另一个问题中,required pam_unix.so引起了一个问题(正如我所期望的)。

为什么我的系统可以工作?

pam
  • 1 个回答
  • 152 Views
Martin Hope
Lyubomir
Asked: 2023-06-06 04:44:49 +0800 CST

/etc/shadow 中的*LK* 与/etc/passwd 中的/usr/sbin/nologon 的区别

  • 5

*LK*set in/etc/shadow和 setting /usr/sbin/nologonin之间的实际区别是什么/etc/passwd?

我们什么时候会选择一个而不是另一个?我们什么时候将它们结合起来?

pam
  • 2 个回答
  • 21 Views
Martin Hope
Jonathan V
Asked: 2022-09-27 01:48:27 +0800 CST

启用 pam_google_authenticator 后 libPAM 库身份验证失败

  • 1

我已启用以下行/etc/pam.d/common-auth:

auth required pam_google_authenticator.so nullok

使用 nullok 选项,它不应该在未设置时询问 OTP(例如:当主文件夹中不存在 .google_authenticator 文件时)。

我有一些用户,他们没有主文件夹(我使用 PAM 系统验证该用户的密码,仅此而已)

通过以下库进行测试:https ://github.com/FirefighterBlu3/python-pam

python3 pam.py 
Username: ...
Password: ...
Auth result: Authentication failure (7)

当我禁用auth required pam_google_authenticator.so nullok时,身份验证正常:

python3 pam.py 
Username: ...
Password: ...
Auth result: Success (0)

启用 google_authenticator 后,如何检查没有主文件夹的用户的密码?

pam
  • 1 个回答
  • 21 Views
Martin Hope
laur
Asked: 2022-06-26 15:09:11 +0800 CST

登录时解锁 gnome-keyring

  • 1

运行 debian 测试,没有显示管理器,i3 窗口管理器。 gnome-keyring&libpam-gnome-keyring软件包已安装。在 /etc/pam.d/login 的末尾添加了以下 2 行:

auth       optional     pam_gnome_keyring.so
session    optional     pam_gnome_keyring.so auto_start

密钥环由 systemd @ 启动/etc/systemd/user/graphical-session-pre.target.wants/gnome-keyring-daemon.service,但也尝试从 xinitrc 替换它:

eval $(/usr/bin/gnome-keyring-daemon --replace --components=gpg,pkcs11,secrets,ssh)

/var/log/auth.log 有以下来自操作系统登录:

Jun 26 00:35:39 p14s su[1409]: (to laur) root on none
Jun 26 00:35:39 p14s su[1409]: pam_unix(su:session): session opened for user laur(uid=1000) by (uid=0)
Jun 26 00:35:39 p14s systemd: pam_unix(systemd-user:session): session opened for user laur(uid=1000) by (uid=0)
Jun 26 00:35:39 p14s su[1409]: pam_unix(su:session): session closed for user laur
Jun 26 00:35:41 p14s su[1922]: (to laur) root on none
Jun 26 00:35:41 p14s su[1922]: pam_unix(su:session): session opened for user laur(uid=1000) by (uid=0)
Jun 26 00:35:42 p14s su[1922]: pam_unix(su:session): session closed for user laur
Jun 26 00:35:42 p14s su[2005]: (to laur) root on none
Jun 26 00:35:42 p14s su[2005]: pam_unix(su:session): session opened for user laur(uid=1000) by (uid=0)
Jun 26 00:35:42 p14s login[1174]: gkr-pam: unable to locate daemon control file
Jun 26 00:35:42 p14s login[1174]: gkr-pam: stashed password to try later in open session
Jun 26 00:35:42 p14s login[1174]: pam_unix(login:session): session opened for user laur(uid=1000) by LOGIN(uid=0)
Jun 26 00:35:42 p14s systemd-logind[1003]: New session 2 of user laur.
Jun 26 00:35:42 p14s login[1174]: gkr-pam: unlocked login keyring <----- this should be success, right?
Jun 26 00:35:42 p14s su[2005]: pam_unix(su:session): session closed for user laur
Jun 26 00:35:42 p14s su[2078]: (to laur) root on none
Jun 26 00:35:42 p14s su[2078]: pam_unix(su:session): session opened for user laur(uid=1000) by (uid=0)
Jun 26 00:35:42 p14s su[2078]: pam_unix(su:session): session closed for user laur
Jun 26 00:35:45 p14s polkitd(authority=local): Registered Authentication Agent for unix-session:2 (system bus name :1.81 [/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1], object path /org/gnome/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)
Jun 26 00:35:46 p14s gnome-keyring-daemon[2026]: The Secret Service was already initialized
Jun 26 00:35:46 p14s gnome-keyring-daemon[3062]: discover_other_daemon: 1
Jun 26 00:35:48 p14s su[4284]: (to laur) root on none
Jun 26 00:35:48 p14s su[4284]: pam_unix(su-l:session): session opened for user laur(uid=1000) by (uid=0)
Jun 26 00:35:50 p14s su[4284]: pam_unix(su-l:session): session closed for user laur
Jun 26 00:35:50 p14s su[4365]: (to laur) root on none
Jun 26 00:35:50 p14s su[4365]: pam_unix(su-l:session): session opened for user laur(uid=1000) by (uid=0)
Jun 26 00:35:50 p14s su[4365]: pam_unix(su-l:session): session closed for user laur
Jun 26 00:35:50 p14s su[4402]: (to laur) root on none
Jun 26 00:35:50 p14s su[4402]: pam_unix(su-l:session): session opened for user laur(uid=1000) by (uid=0)

也尝试删除现有的密钥环,以重新创建。密钥环与我的用户登录密码相同。

仍然没有喜悦。如何在 2022 年解决这个问题?

debian pam
  • 1 个回答
  • 349 Views
Martin Hope
Akshay
Asked: 2022-06-23 03:39:16 +0800 CST

selang 命令:寻找“unix”参数说明

  • 0

我们有一个启用了 etrust 的Solaris 11 主机。我正在查看我们的工程团队创建的脚本之一,该脚本具有以下命令行。

selang -s -c  "ng grp1 owner(etrust) ***unix*** groupid(1234)"

selang -s -c "nu user1 ***unix*** homedir(/export/home/user1) shellprog(/bin/ksh) userid(5678) pgroup(user1) gecos(New user creation for test purpose)"

当我查看可用的selang 环境时,我看到 AC 是默认环境。

想知道在上述 selang 命令中使用 unix 参数创建用户和组是否与在 unix 系统上创建本地用户和组相同?如果是这样,是否仅将 unix 参数用作服务器启用了 etrust?

谢谢并恭祝安康

阿克谢

solaris pam
  • 1 个回答
  • 27 Views
Martin Hope
Anit Aggarwal
Asked: 2022-04-27 12:43:08 +0800 CST

请帮我弄清楚这个命令有什么作用?

  • -4

我在 stackoverflow 上运行 cron 作业时看到了一个修复问题的命令。 https://stackoverflow.com/questions/21926465/issues-running-cron-in-docker-on-different-hosts 我不确定这个命令到底是做什么的,因为我是 unix 命令的新手。任何高贵的灵魂能说出每个部分的作用吗?

sed --regexp-extended --in-place 's/^session\s+required\s+pam_loginuid.so$/session optional pam_loginuid.so/' /etc/pam.d/crond

sed pam
  • 1 个回答
  • 62 Views
Martin Hope
ARDVL
Asked: 2022-04-05 08:54:32 +0800 CST

用 `success=3` 澄清 pam 规则

  • 1

pam_ssh_agent_auth.so在通过 ssh pubkey 进行身份验证时,我正在尝试配置为使用 sudo 为某些用户提供无密码体验。

我开始查看gentoo wiki,它建议使用

...
auth [success=3 default=ignore] pam_ssh_agent_auth.so file=/etc/ssh/sudo_authorized_keys
auth    include     system-auth                 <- 1st skipped
account include     system-auth                 <- 2nd skippedm
session include     system-auth                 <- 3rd skipped
...                                             <- should continue from here

我在 Fedora 上,/etc/pam.d/sudo看起来如下所示:

auth     [success=3 default=ignore] pam_ssh_agent_auth.so file=/etc/ssh/sudo_authorized_keys
auth     include     system-auth
account  include     system-auth
password include     system-auth
session  optional    pam_keyinit.so revoke
session  required    pam_limits.so
session  include     system-auth

我不是 PAM 专家,但是查看手册页时,我将其解释success=3为“如果此规则成功,则跳过接下来的 3 行”,因此如果用户正确登录并且存在代理,我希望不会询问密码。

唉,这是行不通的:无论如何都在询问密码。

[success=3 default=ignore]如果我只使用而不是使用,则身份验证按预期工作sufficient- 我相信这基本上是相同的,在这种情况下我无法分辨出任何区别,因为模块堆栈由接下来的 3 个模块组成。

显然,使用[success=3 default=ignore]和sufficient不是一回事,因为我没有得到相同的结果。

有人可以向我解释实际差异是什么以及为什么前者在这种情况下不起作用?

谢谢

pam
  • 2 个回答
  • 230 Views
Martin Hope
nader
Asked: 2022-02-19 00:54:47 +0800 CST

如何在登录屏幕中询问密码之前使用自定义 PAM(Fedora 35)

  • 1

我开发了一个 PAM 模块来使用我的指纹扫描仪进行登录。我在 ubuntu 18 中对其进行了测试。在 Ubuntu 中,我更改了/etc/pam.d/common-auth文件并在第一行添加了这一行:

auth    sufficient   /usr/local/lib/libpam_myscanner.so

但是在 Fedora 35 中,我在很多文件的第一行添加了这一行,但什么也没发生。当我想使用 运行命令时sudo,它会要求我使用扫描仪进行身份验证。

在询问登录密码之前如何添加我的 PAM 模块?

我当前更改的文件:

login, system-auth, password-auth, gdm-password, sudo
fedora pam
  • 1 个回答
  • 218 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve