Terraform-provider-local: Разрешить создание неисполняемых локальных файлов

Созданный на 17 авг. 2017  ·  4Комментарии  ·  Источник: hashicorp/terraform-provider-local

В настоящее время этот провайдер создает файлы только с разрешениями 0777 .

Возможно, есть способ параметризовать это? Кажется немного странным делать файлы исполняемыми по умолчанию.

https://github.com/terraform-providers/terraform-provider-local/blob/8a97bc491e1e8a28197e40d40226d6748eb07ac6/local/resource_local_file.go#L71

enhancement

Самый полезный комментарий

@brett-richardson @apparentlymart представил возможное решение для этого с № 12. Я разрешил настройку прав доступа к файлам вместо исполняемого логического значения. Оставил текущее поведение нетронутым.

Все 4 Комментарий

Привет, @brett-richardson!

Прямо сейчас возможности этого ресурса довольно ограничены, чтобы сделать его простым. Возможность устанавливать разрешения кажется разумной, и я полагаю, что мы не сделали этого только потому, что это вводит некоторые аспекты, специфичные для платформы — Terraform работает в Windows, и разрешения там не работают таким же образом.

Возможно, мы могли бы обойти это, не слишком обобщая и просто обратившись непосредственно к вашей проблеме здесь, с новым атрибутом executable , который может быть установлен в false . Этот флаг, скорее всего, абсолютно ничего не сделает в Windows, поскольку Windows обычно не делает такого различия (или, скорее, делает это с помощью соглашений об именах файлов), но в POSIX-подобных системах можно установить только права на чтение/запись, а не на чтение/запись. /выполнять. (Он по-прежнему должен учитывать активный umask процесса, поэтому на практике файл на диске обычно _не_ доступен для записи всем, даже если режим здесь предполагает это.)

Это имеет большой смысл. Я посмотрю, смогу ли я организовать PR, когда у меня будет время.

@brett-richardson @apparentlymart представил возможное решение для этого с № 12. Я разрешил настройку прав доступа к файлам вместо исполняемого логического значения. Оставил текущее поведение нетронутым.

Это похоже на № 19, поэтому я дам то же предложение.

Хотя у нас нет многоплатформенной функции, я использовал следующий обходной путь...

resource "local_file" "foo" {
  content = "contents"
  filename = "foo.txt"
  provisioner "local-exec" {
    command = "chmod 644 foo.txt"
}

Надеюсь, поможет!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги