首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有用指定模式创建的目录

没有用指定模式创建的目录
EN

Stack Overflow用户
提问于 2018-09-19 05:50:51
回答 1查看 139关注 0票数 0

编辑:我犯了一个愚蠢的想法错误,我运行ansible通过一个可使用的码头基地形象。该目录是创建的,但在运行ansible的容器中,而不是在ansible docker映像的主机上。

我正在使用ansible创建目录,这些目录稍后用于停靠器挂载。

在剧本中,我有以下几点:

代码语言:javascript
复制
  - name: Create DB mount point
    file:
      path: /mnt/sda1/bic-mounts/oracle-database
      state: directory
      directory_mode: "777"
      mode: "777"

我不得不添加directory_mode参数,尽管它没有文档化才能使它工作:看看几个月前的这个不可接受的问题,似乎我不是唯一有这个问题的人。

使用该参数创建了目录,但是它的模式是755而不是777。它似乎不是八进制和小数之间的问题(因为它不是字符串,但谁知道),因为小数点中的777是八进制的1411。

有人知道是什么导致权限错误吗?我在阻止777的文档中找不到任何东西,但是对directory_mode的需求也没有文档化:)

EN

回答 1

Stack Overflow用户

发布于 2018-09-19 06:04:45

我确认指定前导零是有效的:

代码语言:javascript
复制
  - name: Create DB mount point
    file:
      path: /mnt/sda1/bic-mounts/oracle-database
      state: directory
      mode: 0777

请参阅正式文件

模式文件或目录应该是。对于那些习惯于/usr/bin/chmod的人,请记住模式实际上是八进制数。您必须指定前导零,以便Ansible的YAML解析器知道它是一个八进制数(比如0644或01777),或者引用它(比如'644‘或'0644’),这样Ansible就会接收到一个字符串,并可以自己从字符串转换为数字。在没有遵循这些规则的情况下给Ansible一个数字,最终会得到一个十进制数,这将产生意想不到的结果。从版本1.8开始,可以将模式指定为符号模式(例如,u+rwx或u=rw、g=r、o=r)。

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

https://stackoverflow.com/questions/52398979

复制
相关文章

相似问题

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