В настоящее время этот провайдер создает файлы только с разрешениями 0777
.
Возможно, есть способ параметризовать это? Кажется немного странным делать файлы исполняемыми по умолчанию.
Привет, @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"
}
Надеюсь, поможет!
Самый полезный комментарий
@brett-richardson @apparentlymart представил возможное решение для этого с № 12. Я разрешил настройку прав доступа к файлам вместо исполняемого логического значения. Оставил текущее поведение нетронутым.