gpt4 book ai didi

仅当用户具有权限时才运行 docker 命令(Bash if 或语句)

转载 作者:行者123 更新时间:2023-12-02 20:49:45 25 4
gpt4 key购买 nike

如果用户被允许 docker 权限,我试图只允许运行脚本。所以这意味着用户要么需要在 docker组或成为根。

我试过这样做,但它不起作用。

if [ $EUID -ne 0 ] || [ $(groups | grep -c docker) -ne 1 ]; then
echo "You must have docker privileges to use this command."
exit 1
fi

echo "Do docker stuff"

奇怪的是,只是 [ $EUID -ne 0 ][ $(groups | grep -c docker) -ne 1 ]自己工作正常,但 OR 条件似乎不起作用,我不知道为什么。

最佳答案

您应该将它们与 && 结合使用,不是 || .

假设用户在 docker 组中,但不是 root。 [ $EUID -ne 0 ]将是真的,而 [ $(groups | grep -c docker) -ne 1 ]会是假的。 ||如果其任一操作数为真,则为真,因此这将使整个条件为真,并打印错误消息。
&&只有当它的两个操作数都为真时才会成功,因此当用户不是 root 并且他们不在 docker 组中时,您会收到消息。

关于仅当用户具有权限时才运行 docker 命令(Bash if 或语句),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42088759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com