未分类 · 2023年11月10日 0

Centos7登录提示“permission denied”

问题现象

在login界面登录时,会提示permission denied,如下:

问题出现之前:系统刚重装好,能登录成功,然后修改了/etc/security/limits.conf

根本原因

之前修改了/etc/security/limits.conf,设置的nproc/nofile过大导致。

解决办法

1、重启机器,进入安全模式

在 grub 界面,按e,进入编辑模式,使用上下键找到 linux 行,在 linux16行末输入 init=/bin/bash(注意 init 前面有空格),然后按下 F10 或者 ctrl+x 来启动系统

在进入到 bash 后执行以下命令,以读写权限重新挂载,执行以下命令
mount -o rw,remount /

重新编辑 /etc/security/limits.conf ,把nproc/nofile改小,然后重启电脑

高级解决办法

依然进入安全模式,编辑 /etc/sysctl.conf ,增加以下内容,设置nr_open值大于nofile值

fs.nr_open = 6553500

说明:

ulimit命令是用来设置shell启动进程所占用的资源限制的,而nofile是一个有限的值,并不是unlimited的。设置该值的时候不能超出nr_open定义的范围(在2.6.25内核之前nr_open定义为1024*1024)。
nr_open是一个进程最多同时打开的文件句柄数量,默认nr_open的值为1048576可以通过查看/proc/sys/fs/nr_open