Linux 无法从本地字符界面(tty1-tty6)登陆深度解析

本文涉及的产品
运维安全中心(堡垒机),免费版 6个月
日志服务 SLS,月写入数据量 50GB 1个月
运维安全中心(堡垒机),企业双擎版 50资产 7天
简介: Linux 无法从本地字符界面(tty1-tty6)登陆深度解析作者:吴伟龙(PrudentWoo) 问题描述:        每次装完Oracle数据库之后,本地的tty1-tty6就无法登陆,只能通过vtty或tty7图形终端登陆。

Linux 无法从本地字符界面(tty1-tty6)登陆深度解析

作者:吴伟龙(PrudentWoo)

 

问题描述:

        每次装完Oracle数据库之后,本地的tty1-tty6就无法登陆,只能通过vtty或tty7图形终端登陆。

 

问题现象:

          输入完用户名密码之后,自动弹回如下界面:





日志信息:

[root@nec3 ~]# tail -f /var/log/messages 
Dec 13 09:27:58 nec3 init: tty (/dev/tty1) main process ended, respawning
Dec 13 09:28:03 nec3 init: tty (/dev/tty1) main process (2782) terminated with status 1
Dec 13 09:28:03 nec3 init: tty (/dev/tty1) main process ended, respawning
Dec 13 09:28:43 nec3 init: tty (/dev/tty1) main process (2787) terminated with status 1
Dec 13 09:28:43 nec3 init: tty (/dev/tty1) main process ended, respawning
Dec 13 09:29:51 nec3 init: tty (/dev/tty1) main process (2793) terminated with status 1
Dec 13 09:29:51 nec3 init: tty (/dev/tty1) main process ended, respawning

       我们可以从上面的message日志中看到本地tty1登陆的这个动作,但是没有报错,那么登陆无非要去进行用户名和密码验证,那么用户密码验证信息会记录在名为secure的日志中,如果报密码错误日志中会显示验证失败,日志条目为:FAILED LOGIN 1FROM (null) FOR root, Authentication failure。

        实际上我们在secure日志中看到的信息是Moduleis unknow以及无法打开pam_limits.so模块。

[root@nec3 ~]# tail -f /var/log/secure 
Dec 13 09:28:03 nec3 login: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
Dec 13 09:28:03 nec3 login: Module is unknown
Dec 13 09:28:08 nec3 login: PAM unable to dlopen(/lib/security/pam_limits.so): /lib/security/pam_limits.so: cannot open shared object file: No such file or directory
Dec 13 09:28:08 nec3 login: PAM adding faulty module: /lib/security/pam_limits.so
Dec 13 09:28:43 nec3 login: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
Dec 13 09:28:43 nec3 login: Module is unknown

日志分析:

       根据上面的日志条目中我们可以看到有无效模块,而这个无效的模块信息是我们在数据库安装过程中添加到/etc/pam.d/login配置文件中的,我现在需要判断下这个模块是否存在,为什么需要这个模块。

[root@nec3 ~]# grep pam_limits /etc/pam.d/login 
session    required     /lib/security/pam_limits.so 


[root@nec3 ~]# ls -rtl /lib
lib/   lib64/ 
[root@nec3 ~]# ls -rtl /lib/security/pam*
ls: cannot access /lib/security/pam*: No such file or directory

         那么我们可以看到该模块是不存在的,随即我们再看下lib64这个目录中是否有oracle安装所需的该模块。

[root@nec3 ~]# ls -rtl /lib64/security/pam_limits.so 
-rwxr-xr-x. 1 root root 18592 Oct  7  2013 /lib64/security/pam_limits.so

        那么我们可以清楚的看到在这里是存在这个模块的。

问题处理:

        既然已经看到问题的原因,那么将会有如下三个解决方案:

1、拷贝条目:
[root@nec3 ~]# cp /lib64/security/pam_limits.so /lib/security/pam_limits.so 
[root@nec3 ~]# ls -rtl /lib/security/pam_limits.so 
-rwxr-xr-x. 1 root root 18592 Oct  7  2013 /lib/security/pam_limits.so

2、ln pam_limits.so
[root@nec3 ~]# ln -s /lib64/security/pam_limits.so /lib/security/pam_limits.so
	
3、修改配置文件login为如下:
[root@nec3 ~]# grep pam_limits /etc/pam.d/login 
session    required     /lib64/security/pam_limits.so 

后记:

       文中提到为什么要用pam_limits.so这个模块,因为我们在配置Oracle部署环境的时候配置了limits.conf

限制文件,那么我们要使这个配置生效,必须要确保pam_limits.so被加入到登陆配置文件中应用生效。


参考:

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Tuning_and_Optimizing_Red_Hat_Enterprise_Linux_for_Oracle_9i_and_10g_Databases/chap-Oracle_9i_and_10g_Tuning_Guide-Setting_Shell_Limits_for_the_Oracle_User.html

 

       That these limits work you also needto ensure that pam_limits isconfigured in the /etc/pam.d/system-auth file, or in/etc/pam.d/sshd for ssh, /etc/pam.d/su for su, or /etc/pam.d/login for localaccess and telnet and disabletelnet for all log in methods. Here are examples of the two session entries inthe /etc/pam.d/system-auth file:








目录
相关文章
|
4月前
|
Ubuntu Linux
"unzip"命令解析:Linux下如何处理压缩文件。
总的来说,`unzip`命令是Linux系统下一款实用而方便的ZIP格式文件处理工具。本文通过简明扼要的方式,详细介绍了在各类Linux发行版上安装 `unzip`的方法,以及如何使用 `unzip`命令进行解压、查看和测试ZIP文件。希望本文章能为用户带来实际帮助,提高日常操作的效率。
612 12
|
4月前
|
Unix Linux
对于Linux的进程概念以及进程状态的理解和解析
现在,我们已经了解了Linux进程的基础知识和进程状态的理解了。这就像我们理解了城市中行人的行走和行为模式!希望这个形象的例子能帮助我们更好地理解这个重要的概念,并在实际应用中发挥作用。
105 20
|
5月前
|
Linux
Linux命令的基本格式解析
总的来说,Linux命令的基本格式就像一个食谱,它可以指导你如何使用你的计算机。通过学习和实践,你可以成为一个真正的“计算机厨师”,创造出各种“美味”的命令。
129 15
|
5月前
|
存储 Linux
Linux内核中的current机制解析
总的来说,current机制是Linux内核中进程管理的基础,它通过获取当前进程的task_struct结构的地址,可以方便地获取和修改进程的信息。这个机制在内核中的使用非常广泛,对于理解Linux内核的工作原理有着重要的意义。
235 11
|
6月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
7月前
|
安全 Linux 数据安全/隐私保护
linux root登陆,密码正确但,错误提示su: Authentication failure
通过系统化的排查和解决方案,可以有效应对 `su: Authentication failure` 问题,确保系统安全和用户权限的正确管理。
3625 36
|
7月前
|
数据采集 Web App开发 存储
深度解析:使用 Headless 模式 ChromeDriver 进行无界面浏览器操作
本文介绍了基于无界面浏览器(如ChromeDriver)和代理IP技术的现代爬虫解决方案,以应对传统爬虫面临的反爬机制和动态加载内容等问题。通过Selenium驱动ChromeDriver,并结合亿牛云爬虫代理、自定义Cookie和User-Agent设置,实现高效的数据采集。代码示例展示了如何配置ChromeDriver、处理代理认证、添加Cookie及捕获异常,确保爬虫稳定运行。性能对比显示,Headless模式下的ChromeDriver在数据采集成功率、响应时间和反爬规避能力上显著优于传统爬虫。该方案广泛应用于电商、金融和新闻媒体等行业。
422 0
深度解析:使用 Headless 模式 ChromeDriver 进行无界面浏览器操作
|
8月前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
315 11
|
8月前
|
存储 运维 安全
深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器
本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功能和优势。
277 6
|
10月前
|
缓存 并行计算 Linux
深入解析Linux操作系统的内核优化策略
本文旨在探讨Linux操作系统内核的优化策略,包括内核参数调整、内存管理、CPU调度以及文件系统性能提升等方面。通过对这些关键领域的分析,我们可以理解如何有效地提高Linux系统的性能和稳定性,从而为用户提供更加流畅和高效的计算体验。
414 24