有没有一个我可以 运行 作为非 root 用户的命令来查看用户是否可以 运行 某个 sudo 命令
Is there a command I can run as a non-root user to see if a user can run a certain sudo command
我维护了一个 bash 脚本,它对我 运行 它所在的任何服务器执行系统检查。作为此检查的一部分,我需要确保名为 monapp
的用户可以执行一些命令:
sudo /etc/rc.d/init.d/httpd restart
sudo /etc/rc.d/init.d/mysqld restart
...
但是,我需要能够 运行 作为无权访问 sudoers 文件的用户。我还需要能够弄清楚用户是否可以 运行 这些命令而不执行它们并解析输出(即我不想在一堆系统上重新启动 apache 只是为了看看是否 monapp
可以重启)。
我研究过的所有解决方案都不符合上述要求,所以我有点迷茫。有人可以帮忙吗?
sudo -u theuser bash -c '[ -x /etc/rc.d/init.d/httpd ] && echo "OK" || echo "NOT"'
-x
检查文件是否有执行权限(针对用户运行正在测试)
然后我们运行这个命令作为目标用户(theuser)
这就是我最终需要的。希望这对以后的人有帮助。
sudolist="$(sudo -l)"
declare -a commands=("/etc/rc.d/init.d/mysqld stop" "/etc/rc.d/init.d/mysqld start"
"/etc/rc.d/init.d/mysqld restart" "/etc/rc.d/init.d/httpd stop"
"/etc/rc.d/init.d/httpd start" "/etc/rc.d/init.d/httpd restart"
"/etc/rc.d/init.d/memcached stop" "/etc/rc.d/init.d/memcached start"
"/etc/rc.d/init.d/memcached restart")
for i in "${commands[@]}"
do
if [ ! -z "$(echo $sudolist | grep "$i")" ]; then
echo -e "\tPASS: user can run '$i'"
else
echo -e "\tFAIL: user cannot run '$i'"
fi
done
我维护了一个 bash 脚本,它对我 运行 它所在的任何服务器执行系统检查。作为此检查的一部分,我需要确保名为 monapp
的用户可以执行一些命令:
sudo /etc/rc.d/init.d/httpd restart
sudo /etc/rc.d/init.d/mysqld restart
...
但是,我需要能够 运行 作为无权访问 sudoers 文件的用户。我还需要能够弄清楚用户是否可以 运行 这些命令而不执行它们并解析输出(即我不想在一堆系统上重新启动 apache 只是为了看看是否 monapp
可以重启)。
我研究过的所有解决方案都不符合上述要求,所以我有点迷茫。有人可以帮忙吗?
sudo -u theuser bash -c '[ -x /etc/rc.d/init.d/httpd ] && echo "OK" || echo "NOT"'
-x
检查文件是否有执行权限(针对用户运行正在测试)
然后我们运行这个命令作为目标用户(theuser)
这就是我最终需要的。希望这对以后的人有帮助。
sudolist="$(sudo -l)"
declare -a commands=("/etc/rc.d/init.d/mysqld stop" "/etc/rc.d/init.d/mysqld start"
"/etc/rc.d/init.d/mysqld restart" "/etc/rc.d/init.d/httpd stop"
"/etc/rc.d/init.d/httpd start" "/etc/rc.d/init.d/httpd restart"
"/etc/rc.d/init.d/memcached stop" "/etc/rc.d/init.d/memcached start"
"/etc/rc.d/init.d/memcached restart")
for i in "${commands[@]}"
do
if [ ! -z "$(echo $sudolist | grep "$i")" ]; then
echo -e "\tPASS: user can run '$i'"
else
echo -e "\tFAIL: user cannot run '$i'"
fi
done