Sudoers.d 文件未在 SLES SP5 中提取

问题描述

我正在处理一些 Linux 服务文件,在一种情况下,我需要以不同的用户(例如 sar 用户)的身份调用 systemctl 命令。所以我写了一个sudoers文件(/etc/sudoers.d)并添加了以下代码

%sar ALL=nopASSWD:/usr/sbin/dmidecode -t system,/usr/bin/chmod,/usr/bin/systemctl

Defaults:sar !requiretty

我正在使用 sudo 前缀调用命令

它适用于大多数 Linux 版本,但在 SLES 12 SP5 中它不选择 sudoers 文件,所以我得到 sudo: no tty present and no askpass program specified

Linux 机器规格 NAME="SLES" VERSION="12-SP5" VERSION_ID="12.5" PRETTY_NAME="SUSE Linux Enterprise Server 12 SP5" ID="sles" ANSI_COLOR="0;32" CPE_NAME="cpe:/o:suse:sles:12:sp5"

解决方法

尝试从 sudoers 文件的开头删除“%”,在 SLES 发行版中它不被视为有效格式

sar ALL=NOPASSWD:/usr/sbin/dmidecode -t system,/usr/bin/chmod,/usr/bin/systemctl

Defaults:sar !requiretty