如何在启动时为非 root 用户设置硬文件和软文件限制?

inc*_*to2 3 linux linux-kernel limits

我有一个 xen HVM vps,我试图在启动时为任何人提高硬文件和软文件限制。我正在使用 Ubuntu 10.04.3 并且在 /etc/security/limits.conf 里面我有:

nobody       soft    nofile   10000
nobody       hard    nofile  30000
Run Code Online (Sandbox Code Playgroud)

但是当我检查文件限制时仍然是默认的 1024:

su nobody -c 'ulimit -Hn'
1024
su nobody -c 'ulimit -Sn'
1024
Run Code Online (Sandbox Code Playgroud)

提高 Ubuntu 文件限制的正确方法是什么?

Jac*_*zny 5

/etc/security/limits.conf 文件由pam_limitsPAM 模块处理,用于为用户会话分配资源限制。只有pam_limits在会话设置期间使用PAM 和模块时才会应用这些。

在您的系统中,该su实用程序可能未配置为使用该pam_limits模块(请参阅/etc/pam.d/su.conf文件)或仅在创建新登录会话时使用它(使用-,-l--login选项调用)。

尝试使用

su - nobody -c 'ulimit -Hn'
Run Code Online (Sandbox Code Playgroud)

或添加

session     required    pam_limits.so
Run Code Online (Sandbox Code Playgroud)

/etc/pam.d/su或/和/etc/pam.d/su-l

也可能是这样,您的su实用程序根本没有使用 PAM 支持进行编译。在这种情况下,它永远不会使用该limits.conf文件。