Системы Unix имеют понятие имени хоста, которое не связано с сетевой подсистемой. То имя что hostname
управляйте шоу и что поднимается в журналах. При создании соединения SSH оно выполняет поиск DNS, для обнаружения то, что имя означает в контексте семейства протоколов TCP/IP, что SSH воздействует на.
Для Вашей исправности необходимо удостовериться, что это имя хоста соглашается с тем, что окружение сервер DNS говорит, и с тем, что (если что-нибудь) система думает, что это называют. На самом деле имена DNS не связаны с машинами, но с сетевыми интерфейсами, таким образом, Ваше имя DNS будет связано с одним из Ваших сетевых интерфейсов. На машинах без соединения фактической сети имя хоста должно быть связано с петлевым интерфейсом.
На практике имя хоста хранится в файле /etc/hostname
на большинстве машин. Можно изменить его во времени выполнения с hostname
команда; это сделано рано в процессе начальной загрузки. Локальная идея имени DNS хранится в /etc/hosts
, на строке, соответствующей любому петлевой интерфейс (127.0.0.1
) или к одному из сетевых интерфейсов машины.
Вероятно, git
перезаписывает GID и ACLs после того, как файлы были созданы (как простое mv
делает при перемещении перекрестного устройства). Можно проверить это путем выполнения его через strace (strace -f -o git.strace -e trace=file
).
Если Вы видите различные полномочия использовать git clone
затем это вероятно Ваш umask
который вызывает это:
$ umask
0002
Новые файлы, создаваемые, когда Вы работаете git clone
команда создается с полномочиями на основе какой Ваш umask
указывает. Umask заявляет, какие биты должны быть замаскированы прочь. Таким образом в вышеупомянутом примере любые новые файлы я создаю с umask 0002
имел бы другой бит записи выключенным.
0755
. Прочитайте этот комментарий для большего количества информации: unix.stackexchange.com/questions/80267 / … и сообщают мне то, что Вы думаете
– its_me
21.06.2013, 18:50
Это возможно это git
сбой состоит в том, чтобы клонировать расширенные атрибуты public_html
каталог.
ACLs (а также маркировки файла SELinux) в соответствии с Linux реализованы с помощью основанных на файловой системе расширенных атрибутов (см. страницы справочника для attr, getfattr, setfattr). Расширенные атрибуты должны быть явно скопированы для них, чтобы быть сохраненными. Большинство утилит файла (mv, CP, tar, rsync, комната, и др.) в большинстве современных дистрибутивов Linux было обновлено для поддержки расширенных атрибутов (и, следовательно, ACLs).
Восстановите свой strace, но не учтите -e trace=file
часть, передайте его по каналу к grep xattr
, и затем посмотрите, существуют ли какие-либо вызовы к setxattr.
strace -f 2>&1 git clone | grep xattr
Если Вы не видите вывода, то мерзавец или по крайней мере тот, которого Вы используете, не поддерживают расширенные атрибуты.
strace
команда не работает. Я, как предполагается, заменяюfile
в команде с чем-то? Если да, что? – its_me 21.06.2013, 17:25git.strace
.trace=file
корректно; это ограничивает вывод трассировки файлом связанный syscalls. – Hauke Laging 21.06.2013, 17:27mkdir("dropplets", 0755) = 0
- таким образом это означает, Мерзавец вызывает полномочия каталога и таким образом не придерживается ACLs? Или я неправильно? – its_me 21.06.2013, 18:48