gpt4 book ai didi

linux - 检查权限的脚本

转载 作者:太空宇宙 更新时间:2023-11-04 05:41:15 24 4
gpt4 key购买 nike

我正在尝试编写一个脚本来检查 docker 中容器内文件的权限,但它让我一直说“需要二进制运算符”

我尝试添加“测试”(我通过互联网看到了它,但它不起作用。)

#!/bin/bash
docker exec -i container1 touch /home/ubuntu/tryme

if [ -f -rwx container1:/home/ubuntu/tryme ];
then
echo "Full Permissions";
else
echo "Not every permission. It will be updated"
docker exec -i container1 chmod 777 /home/ubuntu/tryme;
fi

这就是脚本中让我头疼的部分

我本来希望能很好地工作,但它一直说“需要二元运算符”

最佳答案

所以:

  1. 获取文件权限。
  2. 检查文件权限是否符合您的要求。

喜欢:

filepermissions=$(stat -c '%a' /home/ubuntu/tryme)
if [ "$filepermissions" = "777" ]; then
echo "File permissions are set to 777"
else
echo "They are not set to 777"
fi

[ -f -rwx container1:/home/ubuntu/tryme ] 无效。来自 test 检查的 -f 标志(来自 man test ):

-f FILE
FILE exists and is a regular file

-f -rwx 检查文件-rwx是否存在。那么第三个参数无效,并且 [test 需要一个二元运算。它需要 -o-a 二进制运算作为第三个参数,任何其他都是无效的并且没有任何意义。

如果文件位于 docker 内部,则修改脚本很简单,即可获取 docker 容器上下文内的文件权限:

filepermissions=$(docker exec -i container1 stat -c '%s' /home/ubuntu/tryme)

关于linux - 检查权限的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56899082/

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