sudo:pam_open_session Permission denied 与 Too many open files
sudo:pam_open_session Permission denied
一,验证 sudo 权限失败: /etc/sudoers 文件未给相关用户配置权限。
打开 /etc/sudoers 文件: `vim /etc/sudoers`
修改 root 与 admin 用户的权限,并保存文件:
root ALL=(ALL) ALL
admin ALL=(ALL) ALL
二,验证 系统资源限制的配置 失败: ulimit 命令或 /etc/security/limits.conf 文件配置了不合理的系统资源限制。
- 方案一:修改系统资源限制配置。
-
使用 root 用户登录操作系统。
-
查看内核允许的进程最大打开文件数。
cat /proc/sys/fs/nr_open
-
进入 /etc/security/limits.conf文件,配置小于/proc/sys/fs/nr_open的文件打开数限制
假设655360小于/proc/sys/fs/nr_open
cat >> /etc/security/limits.conf <<EOF * soft nofile 655360 ## * 表示所有用户 * hard nofile 655360 ## * 表示所有用户 EOF
- 方案二:移除 PAM 在 session 中对系统资源限制的验证
注意,此方法将移除 PAM 在 session 中对系统资源限制的验证,可能引入安全风险。
此方法将在 debian/ubuntu 系统上使 ulimit 的配置不生效。
-
使用 root 用户登录
-
打开 PAM 配置文件
vim /etc/pam.d/sudo
-
将以下行删除,并保存文件
session required pam_limits.so
Too many open files
一,查看进程用户的打开文件限制
以 redis 用户举例:su - redis -s /bin/sh -c "ulimit -n"
二,修改用户资源限制
见上面方案一。