使用SSH登录ECS提示“Could not set limit for ‘nofile’: Operation not permitted”

问题描述

在limits.conf文件中修改可打开的文件数后,通过SSH登录ECS实例,提示以下信息。

pam_limits(crond:session): Could not set limit for ’nofile’: Operation not permitted

问题原因

若需要修改可打开的文件数,一般修改limits.conf文件的nofile即可,但是如果将此值修改太大,会导致SSH无法登录,因为打开的文件数会超过内核可打开的文件数。

解决方案

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
  1. 在修改可打开文件数,建议先修改内核可打开文件数。在/etc/sysctl.conf中修改fs.file-maxfs.nr_open值。
    说明
    • fs.file-max:系统内核级别所有进程可打开的文件数。
    • fs.nr_open:系统内核级别单个进程可打开的文件数。
  2. 修改完成后,编辑/etc/security/limits.conf文件,修改如下配置,本文将值修改为65535,具体数值以实际环境为准。
    * soft nofile 65535
    * hard nofile 65535
  3. 重启系统,然后依次执行以下命令,确认fs.file-max和fs.nr_open值修改成功。
    cat /proc/sys/fs/file-max
    cat /proc/sys/fs/nr_open

适用于

  • 云服务器ECS