首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CircleCI上Ubuntu镜像的文件权限

CircleCI上Ubuntu镜像的文件权限
EN

Stack Overflow用户
提问于 2020-09-03 16:34:27
回答 1查看 52关注 0票数 0

我刚开始使用CircleCI。我有一个Python脚本,用来调用一些os命令,比如

代码语言:javascript
复制
path = "/Users/Name/Dev"
os.makedirs(path)

cmds = ["cd path", "touch hello.txt"]
cmd = "; ".join(cmds)
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
                            stderr=subprocess.STDOUT)

但是,每当我尝试访问目录时,都会遇到PermissionError: [Errno 13] Permission denied: /Users/Name/Dev。也不能cd,不能写等等。这是在CircleCI上运行时,但在我的个人机器上工作良好。

有什么办法可以让我试试吗?如何修复虚拟机上的这些权限问题?

CircleCI的config.yml设置如下所示:

代码语言:javascript
复制
  build-and-test:
    machine:
      resource_class: large
      image: ubuntu-****
    environment:
      CI_VARIABLE: "8.0.1"
    working_directory: ~/repo
EN

回答 1

Stack Overflow用户

发布于 2020-09-03 16:41:31

我相信这是因为您正在尝试在CircleCI机器的/中创建一组文件夹Users/Name/Dev。由于安全限制(可能是创建文件夹和编写内容的权限),您应该不能这样做。

更好的方法是使用环境变量在home文件夹中创建一个文件夹Dev,如下所示:

代码语言:javascript
复制
path = os.path.join(os.environ['HOME'], 'Dev')
os.makedirs(path)

cmds = ["cd '" + path + "'", "touch hello.txt"]
cmd = "; ".join(cmds)
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
                            stderr=subprocess.STDOUT)

这样,您将始终为用户获得一个可写文件夹,因为它始终是主文件夹。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63719830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档