解决在 Linux 系统中,当你尝试以 root 用户登录时遇到 “Access denied“ 的错误

  1. SSH 服务配置问题‌:

    • 如果你通过 SSH 登录,可能是 SSH 服务的配置文件(如 /etc/ssh/sshd_config)中的设置阻止了 root 用户的登录。

    • 解决方法:

      复制代码
      sudo vi /etc/ssh/sshd_config 
      bash 复制代码
      常用vi编辑器命令
      i:进入插入模式,可以在当前光标位置插入文本。
      Esc:退出插入模式,回到普通模式。
      :w:保存文件但不退出。
      :wq 或 :x:保存文件并退出。
      :q!:不保存更改直接退出。
      :wq!:强制保存文件并退出。

      找到以下行并确保它们被正确设置或注释掉(如果需要):

      复制代码
      PermitRootLogin yes
      PasswordAuthentication yes 

      修改后保存并重启 SSH 服务:

      复制代码
      sudo systemctl restart sshd 

      或者对于某些系统可能是:

      复制代码
      sudo service ssh restart 
  2. PAM(Pluggable Authentication Modules)配置问题‌:

    • 有时候 PAM 的配置文件(如 /etc/pam.d/sshd)也可能限制 root 登录。
    • 解决方法:检查 /etc/pam.d/sshd 文件中的相关行,确保没有禁用 root 登录的规则。
  3. SELinux 策略‌:

    • 如果你的系统启用了 SELinux,它可能阻止 root 登录。

    • 解决方法:临时禁用 SELinux 来测试是否是 SELinux 导致的问题:

      复制代码
      sudo setenforce 0 

      如果这解决了问题,你需要调整 SELinux 的策略而不是永久禁用它。可以使用 semanage 来调整策略,例如允许 root 登录:

      复制代码
      sudo semanage boolean -m -1 allow_direct_mod_auth_btarget 
  4. 账户锁定‌:

    • root 账户可能被锁定。

    • 解决方法:使用 passwd 命令来解锁或重置密码:

      复制代码
      sudo passwd root 

      然后按照提示设置新密码。

  5. 使用 sudo 而非直接登录‌:

    • 如果出于安全考虑,你不想直接以 root 用户登录,可以使用 sudo 命令来执行需要 root 权限的命令。例如:

      复制代码
      sudo <command> 

尝试上述方法之一应该能解决你遇到的问题。如果问题仍然存在,请检查系统的日志文件(如 /var/log/auth.log/var/log/secure),这些日志文件可能会提供更多关于为什么 root 登录被拒绝的线索(密码通常是被加密存储在系统文件中的,例如在/etc/shadow文件中,若是忘记密码或是登录某个权限账户,可从密码文件入手)。

相关推荐
Sam_Deep_Thinking12 分钟前
如何让订单系统和营销系统解耦
java·架构·系统架构
嵌入式×边缘AI:打怪升级日志29 分钟前
100ASK-T113 Pro 开发板 Bootloader 完全开发指南
linux·ubuntu·bootloader
lzhdim32 分钟前
SQL 入门 12:SQL 视图:创建、修改与可更新视图
java·大数据·服务器·数据库·sql
2401_873479401 小时前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络
FQNmxDG4S1 小时前
Maven依赖管理:版本冲突解决与生命周期控制
java·数据库·maven
傻瓜搬砖人2 小时前
Spring集成Web环境
java·spring·maven
charlie1145141912 小时前
Linux 字符设备驱动:cdev、设备号与设备模型
linux·开发语言·驱动开发·c
handler012 小时前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
FQNmxDG4S2 小时前
Java泛型编程:类型擦除与泛型方法的应用场景
java·开发语言·python
zhouwy1132 小时前
Linux进程与线程编程详解
linux·c++