2016-01-07 2 views
0

Я заинтересован в отслеживании локального каталога /etc локально на моем сервере FreeBSD с git, но без ущерба для локальной безопасности моей системы.Ограничение доступа к локальному репозиторию

Например, файл /etc/master.passwd доступен только для чтения root, и я хочу, чтобы он был таким.

По этому способу, однако, безопасность была нарушена:

Как корень, я создал репозиторий в /etc:

/etc# git init . 
/etc# git add . 
/etc# git commit -am "Initial commit" 

Проблема:

Поскольку /etc доступен для чтения someuser, someuser может скопировать репозиторий в его собственную директорию, пригодную для записи, и проверить конфиденциальный файл (ы), тем самым получив доступ для чтения:

/etc$ cp -Rpv .git /home/someuser/sandbox/.git 
/etc$ cd /home/someuser/sandbox 
~/sandbox$ git checkout master.passwd 
~/sandbox$ cat master.passwd 
.... 

Что лучше всего предотвратить это?

+0

Не позволяйте git отслеживать файл, например. игнорируй это? –

+0

@TimCastelijns Я надеялся, что есть способ сделать это, не игнорируя каждый секретный файл. – poplitea

+0

Ну, вам нужно «скрыть» их, почему бы не использовать инструменты, которые вы уже используете? –

ответ

3

Сделайте .git папку только для просмотра на root.

I.e. предоставить директорию (и все файлы в ней) разрешение 600 (владелец может читать и писать).

+0

Я думал об этом, но хорошо ли это работает с git? Я боялся «подделывать» разрешениями '.git' dir, что создавало бы проблемы для git ... – poplitea

+0

Не должно быть проблем, попробуйте и посмотрите. (Предпочтительно не на вашем рабочем сервере '/ etc': P) –

Смежные вопросы