有没有我可以以非root用户身份运行的命令,以查看用户是否可以运行某些sudo命令

氧气

我维护一个bash脚本,该脚本在我运行它的任何服务器上执行系统检查。作为此检查的一部分,我需要确保名为的用户monapp可以执行一些命令:

sudo /etc/rc.d/init.d/httpd restart

sudo /etc/rc.d/init.d/mysqld restart

...

但是,我需要能够以无权访问sudoers文件的用户身份运行它。我还需要弄清楚用户是否可以在不执行命令和解析输出的情况下运行这些命令(即,我不想在一堆系统上重新启动apache只是为了看看是否monapp可以重新启动它)。

我研究过的所有解决方案都不满足上述要求,所以我有些迷茫。有人可以帮忙吗?

氧气

这就是我最终需要的。希望这对以后的人有所帮助。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Laravel“没有计划的命令可以运行。”

如何设置特定用户可以在Redhat中运行某些root命令

单线bash命令可以以root身份正常运行,但不能以sudo身份运行[语法问题]

如何在没有“ sudo”的情况下以root用户身份运行程序?

一旦sudo成为root,是否有命令查看我的用户名?

是否有一种机制可以由非root用户运行“服务”?

root是否可以以非root用户身份执行命令?

有没有一种方法可以让我的bash脚本在任何命令错误时自动运行?

在Docker容器中以非root用户运行sudo命令

没有密码以固定命令的根用户身份运行命令?

Linux:以root用户身份运行特定命令

有没有一种方法可以在不运行另一个不必要的命令的情况下运行sudo?

是否可以利用shellshock错误以特权用户身份运行命令?

非root用户可以root身份运行passwd命令,为什么不能更改root密码?

没有sudo或su命令时如何以其他用户身份运行命令

以root身份运行select shell命令而不给用户sudo权限?

在Docker容器中以非root用户运行sudo命令

即使我的用户组不在sudoers文件中,为什么以sudo的身份运行命令时也没有得到密码提示?

运行某些脚本/命令以用户身份挂起,以root用户身份可以挂起

允许用户以root用户身份运行命令

以root用户身份运行bash脚本,该脚本中具有sudo命令

为什么root用户可以在不提供密码的情况下以任何用户身份运行任何命令?

是否可以在没有root用户访问权限的情况下安装和运行Google Chrome?

我如何知道命令是否需要以root用户身份运行?

在没有SUDO且不是root用户的情况下以root特权运行命令

以用户身份登录运行命令与执行 sudo -u 有什么区别

是否可以在没有密码的情况下以 root 身份运行命令并输入 sudo?

Ansible:如何以没有 shell 的用户身份运行命令

如何在 Ubuntu 中使用 python 以非 root 用户身份运行 root 用户命令