Блокировать пользователя GIT от входа, но позвольте пользователю все еще функционировать как Git Reppo?

Количество abc, содержащихся в файлах:

Чтобы подсчитать количество всех abc в файлах .txt, используйте grep -c и найдите и - в исключительных случаях - cat:

find . -name "*.txt" -exec cat {} + | grep -ic abc

Grep -c будет делать общий счет для вас - то, что я не нашел в ответе SigueSigueBen, который содержит необоснованные вызовы xargs , imho. Остальные 2 ответа, где мне тосковать. Я их не изучал и сам писать не стал бы.

Количество файлов, содержащих abc:

find . -name "*.txt" -exec grep -iq abc {} ";" -printf "1" | wc -c 

Это не приведет к ошибке с именами файлов (которые, я признаю, редко), содержащими символы новой строки в своем имени (что совершенно законно).

3
18.12.2018, 23:29
3 ответа

Я не уверен, что вход всех ваших пользователей в систему как пользователя «git» — лучшая идея с точки зрения безопасности, но, безусловно, можно делать то, что вы хотите, с помощью параметра конфигурации ForceCommand. Например, чтобы только пользователь с именем «git» мог запускать команду «git», вы должны добавить следующее в свой файл /etc/ssh/sshd_config:

Match User git
    ForceCommand /usr/bin/git
    AllowTCPForwarding no
    X11Forwarding no

Прочтите справочную страницу sshd_configи внесите необходимые изменения в свою конкретную ситуацию.

4
27.01.2020, 21:12

Если вы устанавливаете gitlab-ce, в нем явно указано, что конфигурация ssh уровня -не -стандартного пользователя -может привести к странным поломкам, и он хочет это исправить.

Что gitlab-ceделает, так это то, что при добавлении ключа через веб-интерфейс он одновременно добавляет некоторую информацию о конфигурации-

# cat ~git/.ssh/authorized_keys
command="/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell key-1",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AA...restofkeysnip!

Обратите внимание, что у пользователя gitнет ~/.bashrcили ~/.profileили других файлов с точками, а оболочка установлена ​​​​на /bin/sh, и в sshd_configне внесено никаких изменений.

2
27.01.2020, 21:12

Вы можете использовать git-shellдля ограничения доступа к учетным записям пользователей SSH. Со страницы документации :

This is a login shell for SSH accounts to provide restricted Git access. It permits execution only of server-side Git commands implementing the pull/push functionality, plus custom commands present in a subdirectory named git-shell-commands in the user’s home directory.

git-shellпо умолчанию не является -интерактивным. Установка оболочки пользователя по умолчанию на git-shellпозволит вам запретить пользователям интерактивно входить на ваш сервер, сохраняя при этом функциональность gitнетронутой. Возможен некоторый уровень настройки, который описан на той же странице в разделе «ПРИМЕРЫ».

git-shellдолжен быть установлен вместе с git по адресу /usr/bin/git-shell. Вы можете установить это как оболочку пользователя по умолчанию, используяusermod:

usermod -s /usr/bin/git-shell username
6
27.01.2020, 21:12

Теги

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