Во-первых, просто chmod
общую папку на machine-1
во что угодно.
Если все пользователи на любой клиентской машине (или, по крайней мере, те, которые фактически пишут в общий ресурс ), имеют свои umask
значения, установленные на 002, вы не должны -теоретически -нуждаться в сделать что-нибудь еще.
Однако, если вы не можете быть уверены в umask
значениях клиентских компьютеров, вы можете добавить ACL по умолчанию в общую папку перед созданием каких-либо вложенных -папок. Для этого убедитесь, что в файловой системе на сервере machine-1
, которая фактически содержит общую папку, включена поддержка ACL, и сделайте следующее:
setfacl -m d:u::rwx,d:g::rwx,d:o::rx /shared/folder/on/machine-1
В результате getfacl /shared/folder/on/machine-1
теперь должен возвращать:
# file: /shared/folder/on/machine-1
# owner: <username of folder owner>
# group: <group name>
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
Последние три строки описывают разрешения, автоматически применяемые к любым вложенным -папкам и файлам, созданным в этой папке с этого момента. Для обычных файлов разрешение на выполнение будет автоматически пропущено, если только программа, создающая файл, не указывает, что она хочет создать исполняемый файл.
Возможно, это поможет вам получить ожидаемый результат
#!/bin/bash
# GNU bash, version 4.4.20
string="1__2__3__4__5" ; echo "${string//__/_}"
Проверено на:https://rextester.com/l/bash_online_compiler