全部產品
Search
文件中心

:使用SSH遠端連線Linux系統的ECS執行個體時,提示“could not set limit for ‘nofile’: Operation not permitted”錯誤怎麼辦?

更新時間:Apr 16, 2025

本文使用SSH遠端連線Linux系統的ECS執行個體時,提示“could not set limit for ‘nofile’: Operation not permitted”錯誤的原因和解決方案。

問題現象

使用SSH遠端連線Linux系統的ECS執行個體時,提示以下錯誤資訊。

-bash: fork: retry: Resource temporarily unavailable.
pam_limits(sshd:session):could not sent limit for 'nofile':operaton not permitted.
Permission denied.

問題原因

該問題可能是Linux核心中資源限制設定檔/etc/security/limits.confnofile值過大,超過核心可開啟的檔案數,導致無法使用SSH串連ECS執行個體。

解決方案

您可以根據業務需要,修改/etc/sysctl.conf/etc/security/limits.conf設定檔以解決此問題。

  1. 以VNC方式遠端連線ECS執行個體。

    具體操作,請參見串連方式概述

  2. 分別執行如下命令,查看fs.file-maxfs.nr_open參數值。

    • fs.file-maxfs.nr_open參數值小於65536,建議您繼續步驟3

    • fs.file-maxfs.nr_open參數值大於65536,建議您執行步驟4

      cat /proc/sys/fs/file-max 
      cat /proc/sys/fs/nr_open 
  3. 修改/etc/sysctl.conf設定檔。

    1. 開啟/etc/sysctl.conf設定檔。

      vim /etc/sysctl.conf
    2. i鍵進入編輯模式。

    3. 修改fs.file-maxfs.nr_open參數值。

      建議將fs.file-maxfs.nr_open參數值都修改為大於65536。

        說明
        • fs.file-max:系統核心層級所有進程可開啟的檔案數。

        • fs.nr_open:系統核心層級單個進程可開啟的檔案數。

      fs.file-max = 655360
      fs.nr_open = 655360
  4. 修改/etc/security/limits.conf設定檔。

    1. 開啟/etc/security/limits.conf設定檔。

      vim /etc/security/limits.conf
    2. i鍵進入編輯模式。

    3. 修改* soft nofile* hard nofile參數值。

      例如,將* soft nofile* hard nofile參數值都修改為大於65535。

      * soft nofile 655350
      * hard nofile 655350
  5. 重啟ECS執行個體。

    具體操作,請參見啟動執行個體

  6. 依次執行以下命令,確認fs.file-maxfs.nr_open值修改成功。

    cat /proc/sys/fs/file-max
    cat /proc/sys/fs/nr_open

相關文檔

無法串連Linux執行個體的排查方法