Вы можете использовать параметры конфигурацииcreate mask
и directory mask
, чтобы настроить более разрешающую маску umask, чтобы разрешить членам группы (или всем )изменять файлы.
Например:
create mask = 0775
directory mask = 0775
Имеются также соответствующие опцииforce crate mode
и force directory mode
. При использовании соответствующие разрешения всегда добавляются к созданным файлам и каталогам.
В зависимости от того, как настроены ваши пользователи:
Если все ваши пользователи входят в общую основную группу, достаточно использовать указанные выше параметры.
В случае, если первичные группы не являются общими, но пользователи являются членами общей группы, установите группу каталогов в общую группу и примените к нейбит setgid . Когда бит setgid установлен для каталога, новые созданные файлы наследуют группу каталога, а новые созданные каталоги также будут иметь установленный бит setgid .
Использоватьсписки контроля доступа POSIX. Чтобы включить ACL для файловой системы, вам может понадобиться использовать параметр монтирования acl
. Когда для каталога установлен ACL по умолчанию, новые созданные файлы и каталоги наследуют ACL по умолчанию. Подробности см. в ответе о том, как наследовать групповые разрешения в Linux .
Похоже, что очень старые версии awk не имели возможности {…}
.
Этот старый синтаксис регулярных выражений должен совпадать с любым awk:
awk '/@ [0-9][0-9]?\/[0-9][0-9]?\/[0-9][0-9]?, [1-2]?[0-9]:[0-6][0-9] [AP]M/' file
Если бы ваш awk мог сопоставлять выражения в квадратных скобках, например [[:blank:]]
, регулярное выражение можно было бы сделать немного более гибким:
awk '/@[[:blank:]][0-9][0-9]?\/[0-9][0-9]?\/[0-9][0-9]?,[[:blank:]][1-2]?[0-9]:[0-6][0-9][[:blank:]][AP]M/' file
Если совпадение одной (или нескольких )цифр достаточно (Не понимаю, почему нет ), вы можете использовать более короткое регулярное выражение:
awk '/@ [0-9]+\/[0-9]+\/[0-9]+, [1-2]?[0-9]:[0-6][0-9] [AP]M/' file
И вы можете добавить start ^
и end $
, чтобы при необходимости сделать регулярное выражение более строгим.
Я не использую match
для такого простого сопоставления строки, но то же самое регулярное выражение прекрасно работает с этой функцией.
/\W
(не -словесному символу )перед @
? как в вашем текстовом файле @
находится в начале строки \@
, \,
,:
(они не являются специальными символами)match()
является излишним, если нужно только сопоставить шаблон $ awk '/^@ [0-9]{1,2}\/[0-9]{1,2}\/[0-9]{1,2}, [0-9]{1,2}:[0-9]{2} [AP]M/' file
@ 1/7/18, 4:21 PM
@ 1/7/18, 4:22 PM
@ 1/7/18, 6:12 PM
@ 1/7/18, 8:56 PM
@ 1/7/18, 9:36 PM
@ 1/7/18, 9:46 PM