Запуск команды в оболочке контейнера raw по сравнению с командой с использованием /bin/bash -ac, получение разных результатов

Итак, вы хотите, чтобы файлы/каталоги, созданные в этом каталоге, наследуют разрешения родительского каталога?

Для этого вам нужно использовать ACL по умолчанию(acl(5)):

If a default ACL is associated with a directory, the mode parameter to the functions creating file objects and the default ACL of the directory are used to determine the ACL of the new object:

  1. The new object inherits the default ACL of the containing directory as its access ACL.

Таким образом, сsetfacl(1)флаг -dсообщает ему изменить ACL по умолчанию:

$ ls -ld data
drwxrwsr-x+ 2 userone groupone 4096 Dec  8 18:36 data/
$ setfacl -d -m u::rwx,g::rwx,o::r-x data
$ getfacl data
# file: data
# owner: userone
# group: groupone
# flags: -s-
user::rwx
group::rwx 
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

При такой настройке новый файл или каталог, созданный в каталоге, получает разрешения из списка управления доступом по умолчанию. Это переопределяет umaskпроцесса, создающего файл, но не переопределяет режим файла, указанный в open()/ mkdir()/etc. системный вызов.

$ mkdir data/test
$ ls -ld data/test
drwxrwsr-x+ 2 userone groupone 4096 Dec  8 18:38 data/test/

Возможно, вам потребуется включить ACL в файловой системе во время монтирования с помощью параметра монтирования acl.

0
13.04.2020, 02:04
1 ответ

Они не совсем одинаковы! Посмотрите на awk, в одном у вас есть

 awk '{print $NF}'

а в другом у вас

 bash -c ".... awk '{print $NF}'..."

В первом $защищено одинарными кавычками, поэтому программа для awk — {print $NF}, но во втором одинарные кавычки не имеют значения, пока строится строка. Предполагая, что у вас нет определенной переменной оболочки с именем NF, последняя дает

 bash -c "... awk '{print }'..."

поэтому awk печатает весь вывод вашей команды aws, а оболочка выдает вам синтаксические ошибки.

$ (... ), вероятно, также оценивается в неправильное время.

Как правило, всегда используйте одинарные кавычки, а не двойные кавычки, если вы не хотите, чтобы оценивались переменные.

0
19.03.2021, 02:29

Теги

Похожие вопросы