Права доступа к файлам при удалении пользователя из git

Вы наблюдали выход из кода 1, как это:

$ echo "ACI123456777-001-20170701.pdf" | grep -e "^ACI([0-9]{9})-([0-9]{3})-([0-9]{8}).pdf$"; echo code=$?
code=1

Чтобы он работал так, как вы ожидаете, вам нужна опция -E `:

$ echo "ACI123456777-001-20170701.pdf" | grep -Ee "^ACI([0-9]{9})-([0-9]{3})-([0-9]{8}).pdf$"; echo code=$?
ACI123456777-001-20170701.pdf
code=0

-Eвключает расширенные функции регулярных выражений.

Если вы действительно хотите использовать базовое регулярное выражение, которое используется по умолчанию, вам нужно добавить несколько escape-последовательности:

$ echo "ACI123456777-001-20170701.pdf" | grep -e "^ACI\([0-9]\{9\}\)-\([0-9]\{3\}\)-\([0-9]\{8\}\).pdf$"; echo code=$?
ACI123456777-001-20170701.pdf
code=0

Значение-e

Параметр grep -eпредшествует шаблону регулярного выражения:

$ echo "ACI123456777-001-20170701.pdf" | grep -e '^ACI'
ACI123456777-001-20170701.pdf

Если есть только один шаблон, то grep не нужен -eи его можно опустить:

$ echo "ACI123456777-001-20170701.pdf" | grep '^ACI'
ACI123456777-001-20170701.pdf

Однако при наличии двух или более шаблонов необходимо -e:

$ echo "ACI123456777-001-20170701.pdf" | grep -e '^ACI' -e 'pdf'
ACI123456777-001-20170701.pdf
4
05.05.2015, 14:48
1 ответ

В дополнение к комментарию vorac, детализированные разрешения являются одной из основных причин использования выделенного программного обеспечения сервера git.

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

Единственный способ обойти это — заставить пользователей получать доступ через выделенное программное обеспечение сервера git.Это по-прежнему позволяет пользователям получать доступ через протокол ssh, но они делают это либо с помощью полностью настроенного SSH-сервера, либо, в случае gitolite , с очень настроенным пользователем SSH.

Для очень простой легкой установки гитолита вполне достаточно. Со временем вы можете захотеть перейти на более сложные инструменты ERM, такие как gitlab .

0
28.07.2020, 11:20

Теги

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