Существует ли способ препятствовать тому, чтобы мерзавец изменил полномочия и владение на получении по запросу?

Если файловая система заполняется, который может вызвать весь вид горя. Графическая среда использует пространство для временных файлов в/tmp и/var/tmp, в/var/log система сохраняет журналы (и если нет пространства, это вызовет проблемы). И так далее. Необходимо смочь войти в систему в спасательном режиме (однопользовательский режим, начальная загрузка с аргументом ядра 1) и вымыться.

11
15.03.2018, 12:47
2 ответа

Похоже, что у пользователя, которого вы запускаете, группа по умолчанию установлена на юрий . Вы можете подтвердить это следующим образом:

$ id -a
uid=1000(saml) gid=1000(saml) groups=1000(saml),10(wheel),989(wireshark)

UID вашей учетной записи такой: uid=1000(saml), в то время как группой по умолчанию является git=1000(saml), и любые вторичные группы являются последующими.

ПРИМЕЧАНИЕ: Если вы хотите, чтобы git-клон имел определенное право собственности, то у вас есть как минимум 2 варианта.

Опция #1

Установите родительский каталог с необходимыми правами:

$ mkdir topdir
$ chgrp http topdir
$ chmod g+s topdir

$ cd topdir
$ git clone ....

Это заставило каталог topdir принудительно использовать любые дочерние каталоги под ним, чтобы применить группу http. Это будет работать в общем и целом, но может привести к проблемам, поскольку если вы перемещаете файлы в рабочую область клонирования git'а, то эти файлы не будут иметь своих групп, введённых вышеприведёнными изменениями.

Вариант #2

Перед началом работы измените вашу группу по умолчанию на http так:

$ newgrp http
$ git clone ...

Этот метод заставит любые новые созданные файлы установить их группу на http вместо вашей обычной группы по умолчанию yuri, но это будет работать только до тех пор, пока вы не забыли сделать newgrp до начала работы в этой рабочей области.

Другие опции

Если ни одна из них не кажется вам приемлемой, вы можете попробовать использовать ACL в каталоге рабочей области git'а. Они обсуждаются в нескольких вопросах и ответах на этом сайте, например, в этом вопросе и ответах под заголовком: Получение новых файлов для наследования групповых разрешений на Linux.

4
27.01.2020, 19:59

Я использую решение: запустить команду от имени пользователя , у которого есть разрешения, которые вы хотите сохранить:

sudo -u user command

Это сохраняет разрешения от изменения. Я использую его при обновлении репозиториев git на моем VPS, сохраняя права доступа к файлам для пользователя веб-сервера.

См. Также тот же вопрос здесь .

2
27.01.2020, 19:59

Теги

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