Как установить / сохранить права доступа к каталогу?

0

Я использую CwRsync для подключения с моей машины для разработки Windows к веб-серверу Linux:

rsync -avuz -e ./ssh --exclude=".svn" /cygdrive/c/xampp/htdocs/project123/ user123@project123.com:/home/user123/public_html

Это быстро и быстро синхронизирует каталог моего проекта разработки с сервером.

Но после этого все свойства каталога сбрасываются локальному пользователю. user123 только, так что сайт больше не доступен. Мне нужно вручную сбросить эти свойства.

Почему это происходит и как это предотвратить?

PS. Исходя из среды Windows, мне очень трудно понять rsync. Я скопировал приведенную выше команду из некоторых примеров ... просто нужно, чтобы эта маленькая штука тоже работала ...

Dylan
источник
1
Какой пользователь запускает команду rsync? Со страницы руководства rsync: -o, --owner preserve owner (super-user only)
Mikael Kjær

Ответы:

1

Это зависит от того, что вы подразумеваете под «свойствами».

  • Права доступа? -p ( --perms ) вариант должен их сохранить. Автоматически включается при использовании -aТем не менее, если разрешения будут потеряны, это может быть вызвано самим CwRsync.

    Убедитесь (используя Cygwin's ls а также chmod ) что местный разрешения правильные. Или попробуйте --no-perms вариант.

  • Владение? В системах Unix пользователям не разрешается менять владельца файла. Если вы вошли как user123 и создайте файл, он будет принадлежать user123, период. Аналогичные ограничения существуют для групп - вы Можно изменить группу файла, но только если вы сами в этой группе.

  • Что-то другое?

grawity
источник
Я имел в виду разрешения (в моем программном обеспечении FTP это называется свойствами, поэтому я подумал, что это слово :). Похоже, что разрешения группы и мира установлены на 0 с помощью rsync. Что вы имеете в виду с локальными разрешениями? Источник - машина с Windows ... Сначала я попробую ваши советы.
Dylan
1
@Dylan: Windows тоже имеет права доступа к файлам (так называемые ACL), более сложные, чем у Unix. При использовании CwRsync уровень Cygwin пытается преобразовать списки ACL Windows в разрешения Unix, которые затем копируются rsync на удаленный сервер. Поиграть с icacls на винде, возможно попробуйте icacls C:\xampp\htdocs\project123 /grant everyone:(oi)(ci)(rx),
grawity