Linux服务器登录后,切换root用户报错:sudo: PAM authentication error: Module is unknown

问题起因:

由于linux服务器主机没有设置类似以下策略:root认证失败次数限制、口令生存周期、登录失败最大重试锁定时长等,所以需要修改主机的登陆策略,查询资料后,对策略进行修改,分别对/etc/pam.d/login、/etc/pam.d/system-auth两个配置文件进行修改,修改配置文件时,是添加了pam_tally2.so模块、pam_two_step.so模块,保存配置即生效。

报错描述:

修改了配置文件后,在登录进入服务器后,使用sudo -i 命令切换至root用户时,报错:
sudo: PAM authentication error: Module is unknown

排查解决:

问题排查:

由于试了多次切换root用户都是提示失败,且没有权限继续编辑配置文件,尝试查询资料,大多数资料都是:由于配置文件中使用了服务器不存在的模块,所以才会导致这样的问题,需要进入服务器后台,以单用户模式,去注释掉修改过的配置文件。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/286560adf37a492ba53e26311b7712a6.png#pic_center)

问题解决:

当用户模式下,分别注释掉/etc/pam.d/login、/etc/pam.d/system-auth配置文件中使用到的pam_tally2.so模块、pam_two_step.so模块。注释后,重启服务器即可。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你在Linux系统中尝试使用`sudo docker`命令时,收到"command not found"的错误,这通常意味着你的系统找不到名为`docker`的命令。这可能是由于以下几个原因: 1. Docker没有安装:`sudo`是一个用于执行具有管理员权限的命令的工具,如果你没有安装Docker,那么自然找不到这个命令。 2. Docker不在PATH环境变量中:`docker`命令可能位于你的系统路径之外,所以`sudo`无法找到它。检查`$PATH`环境变量是否包含了Docker安装目录下的bin文件夹。 3. Docker服务未启动:即使安装了,如果Docker服务没有运行,你同样会遇到这个问题。你可以使用`systemctl status docker`或`service docker status`来确认Docker服务是否正在运行。 4. 使用的是旧版本的sudo:如果sudo配置有问题,或者sudo不支持直接执行可执行文件(比如docker),你可能需要在`sudo`后加上`docker`的完整路径。 解决方法如下: - **检查安装**:确保已经安装了Docker,可以使用`docker --version`来查看版本信息。 - **更新PATH**:添加Docker到系统PATH,编辑`~/.bashrc`或`~/.bash_profile`,增加`export PATH=$PATH:/usr/local/bin`。 - **启动服务**:如果Docker服务未启动,使用`sudo systemctl start docker`(基于systemd)或`sudo service docker start`启动。 - **确认sudo配置**:确认sudo配置是否允许直接执行docker命令,或者使用`sudo docker`后面加上完整的docker命令路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值