Чтобы подсчитать количество всех abc в файлах .txt, используйте grep -c и найдите и - в исключительных случаях - cat:
find . -name "*.txt" -exec cat {} + | grep -ic abc
Grep -c будет делать общий счет для вас - то, что я не нашел в ответе SigueSigueBen, который содержит необоснованные вызовы xargs
, imho. Остальные 2 ответа, где мне тосковать. Я их не изучал и сам писать не стал бы.
find . -name "*.txt" -exec grep -iq abc {} ";" -printf "1" | wc -c
Это не приведет к ошибке с именами файлов (которые, я признаю, редко), содержащими символы новой строки в своем имени (что совершенно законно).
Я не уверен, что вход всех ваших пользователей в систему как пользователя «git» — лучшая идея с точки зрения безопасности, но, безусловно, можно делать то, что вы хотите, с помощью параметра конфигурации ForceCommand
. Например, чтобы только пользователь с именем «git» мог запускать команду «git», вы должны добавить следующее в свой файл /etc/ssh/sshd_config
:
Match User git
ForceCommand /usr/bin/git
AllowTCPForwarding no
X11Forwarding no
Прочтите справочную страницу sshd_config
и внесите необходимые изменения в свою конкретную ситуацию.
Если вы устанавливаете 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
не внесено никаких изменений.
Вы можете использовать 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