sudo 报错,pam_open_session Permission denied

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 文件配置了不合理的系统资源限制。

  • 方案一:修改系统资源限制配置。
  1. 使用 root 用户登录操作系统。
  2. 查看内核允许的进程最大打开文件数。
    cat /proc/sys/fs/nr_open
  3. 进入 /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 的配置不生效。

  1. 使用 root 用户登录
  2. 打开 PAM 配置文件vim /etc/pam.d/sudo
  3. 将以下行删除,并保存文件session required pam_limits.so

Too many open files

一,查看进程用户的打开文件限制

以 redis 用户举例:su - redis -s /bin/sh -c "ulimit -n"

二,修改用户资源限制

见上面方案一

博客园

武平宁

请登录后发表评论

    没有回复内容