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 / 问题 / 563818
Accepted
philipp
philipp
Asked: 2020-01-25 00:56:51 +0800 CST2020-01-25 00:56:51 +0800 CST 2020-01-25 00:56:51 +0800 CST

PAM — 完全禁用密码登录

  • 772

我正在尝试提高整个 IT 基础架构的安全性,因此我开始使用智能卡进行登录。我已经设法使用私钥和 x.509 证书配置 PIV 智能卡并进行设置pam_pkcs#11,以便智能卡登录工作。如文档中所述,我添加了以下内容:

auth    [success=2 default=ignore]      pam_pkcs11.so

toetc/pam.d/common-auth和 since 比智能卡登录有效。但是现在,如果读取器和智能卡被移除,系统将退回到密码登录(在这种情况下是 gnome)。

所以我的目标是完全禁用密码登录,无论是否有图形界面。如果读卡器和智能卡没有连接,应该不能登录。

我读过的某处passwd -l $(whoami)将某个帐户的密码设置为非活动状态,但这对我来说感觉不对。

是否可以这样做pam,这样整个机器都禁用密码登录?

顺便说一句:现在我正在使用 ubuntu 19.10

pam authentication
  • 3 3 个回答
  • 6379 Views

3 个回答

  • Voted
  1. Best Answer
    binarym
    2020-01-25T01:58:35+08:002020-01-25T01:58:35+08:00

    该模块似乎pam_unix.so负责standard Unix authentication:

    PAM_UNIX(8)                           Linux-PAM Manual                           PAM_UNIX(8)
    
    NAME
           pam_unix - Module for traditional password authentication
    
    SYNOPSIS
           pam_unix.so [...]
    
    DESCRIPTION
           This is the standard Unix authentication module. It uses standard calls from the
           system's libraries to retrieve and set account information as well as authentication.
           Usually this is obtained from the /etc/passwd and the /etc/shadow file as well if
           shadow is enabled.
    

    因此,要完全禁用基于密码的身份验证,我认为评论目录中包含pam_unix.so的每一行/etc/pam.d就足够了。

    • 3
  2. programmer
    2020-01-25T01:51:02+08:002020-01-25T01:51:02+08:00

    有时您需要为用户设置无密码登录以进行自动登录、shell 脚本,这样您就无需提供任何密码。这可以通过使用带有-d选项的passwd命令来实现,该选项删除已分配的密码。

    例子:

    passwd -d 用户名

    完成此更改后,/etc/shadow 字段中的密码字段将更改为空,这样您就可以在没有密码的情况下从任何机器登录到本地机器。更新:一些用户指出这仅适用于本地登录,但对于远程登录,这将不起作用。

    • 1
  3. John Williams
    2021-10-19T14:04:15+08:002021-10-19T14:04:15+08:00

    以下是尝试禁用 PAM 引起的问题的解决方案:

    我是我计算机的唯一用户,因此不喜欢 PAM,但如果您想避免 PAM,请使用其他地方描述的禁用命令(“skip-authentication”)。通常,您必须拥有 root 登录才能执行此处描述的任何操作。

    以下已使用 Ubuntu v. 20.04.3 LTS 进行了测试;它不是强烈依赖于系统的,下面描述的过程应该适用于任何最近的 Ubuntu 操作系统。

    不幸的是,如果缺少某些 PAM 文件,Ubuntu 的当前版本将无法运行:当这些文件被删除或禁用时,Ubuntu 将无法启动——并且尝试在 Ubuntu“恢复模式”中重新启动也将不起作用。为什么这种对 PAM 的完全依赖被设计到 Ubuntu 中,我不知道;这似乎是某种设计错误。

    无论如何,在本文中,我将描述如何从致命的 PAM 错误中恢复,而无需重新安装 Ubuntu 操作系统。

    预赛

    首先,您必须创建一个 Ubuntu 重新安装 DVD——它通常是一个可从 Internet 上免费下载的 iso 文件(并且也由各个供应商以象征性的价格出售)。可引导 DVD 也可以通过使用某些可下载的应用程序(例如,K3b)来修改不可引导的 DVD 来创建。

    创建此可启动 DVD 后,您应该对其进行测试以确保它可以自行启动。启动后,它应该会提示您尝试或安装 Ubuntu。退出或关闭计算机以避免更改任何内容。

    其次,你应该养成定期(比如每周)备份整个 Ubuntu 操作系统的习惯。然后,如果您必须重新安装 Ubuntu,您也可以安装最近备份的数据。

    从操作系统错误中恢复

    恢复的关键是永远不要在不知道操作系统将在没有它们的情况下运行的情况下删除操作系统文件。在考虑删除 OS 文件(例如,PAM 文件)时,应始终保持文件安装并通过先重命名文件来禁用文件,然后重新启动并测试效果。

    我首选的重命名是将 (file).exe 更改为 (file).exe_JMW_WAS,因为名为 (whatever).exe_JMW_WAS 的文件不是 Ubuntu(或 Windows)可执行文件。查找所有 *_JMW_WAS 可以轻松纠正重命名错误(我使用“find / -name *_JMW_WAS -print”)。

    禁用几个已安装的 PAM 文件将阻止重新启动;但是,如何纠正这样的错误?禁用或删除某些 PAM 文件后,正常重新启动将挂起,甚至恢复模式重新启动也会打印致命错误消息并且永远不会继续。

    第一:不要删除任何PAM文件;相反,重命名它以防止执行。

    第二:如果发生灾难,请尝试 Ubuntu 恢复模式。如果您发现恢复模式不起作用,请使用重新安装的 DVD 重新启动。

    经过一段时间的延迟,这张 DVD 将为您提供 (a) 试用 Ubuntu 或 (b) 安装 Ubuntu 的选项。选择试用选项。

    经过更多延迟后,您将看到一些手动命令要运行;选择“文件”命令。

    文件显示有一个最终的“其他位置”选项,它将列出已安装的操作系统。此列表将包括您无法启动的 Ubuntu 操作系统以及 Windows(如果已安装)。

    以 root 身份登录,并使用可用的终端命令,您现在可以选择无法启动的文件 Ubuntu OS 和 cd 到 /etc 或 /lib 目录,其中包含您之前错误修改或禁用的 PAM 或其他文件 - 和,当然,你重命名但没有删除。

    将相应的文件重命名回它们原来的可执行文件名,瞧!您的 Ubunto 操作系统现在将正常重启!

    • 0

相关问题

  • 创建颜色配置文件需要身份验证

  • 了解 PAM 和 PAM 感知守护程序之间的通信

  • LDAP 和 PAM 用于 GUI 登录但不适用于 SSH

  • PAM Ke​​rberos 和 RStudio

  • 使用 Axel 下载器进行 HTTPS 身份验证

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