Проблемы команды Rsync, владелец и полномочия группы не изменяются

  1. Имя хоста $

  2. Кошка $ / и т.д. / *release

    Примечание: это работает над большинством дистрибутивов кроме плоскости Debian. На debian, 'кошка/etc/debian_version'

  3. $ повторяют ~

  4. $ w

  5. История $ |grep/usr/bin

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

  6. Туалеты $-l $ (находят/usr/share/dict - следуют - тип f - печать), |grep общее количество

    Принятие нескольких файлов слова и никаких дублирующихся слов. Теперь следует за символьными ссылками!

  7. Группы $

  8. $ находят ~ - тип f

  9. $ grep-R колотят/usr/share/man

Я также чувствую, что просто сделал домашнюю работу некоторого ребенка. И форматирование на этом сайте является кошмаром.

28
задан 31 December 2013 в 22:57
4 ответа

Похоже, он работает правильно. Используйте - владелец и - группа , чтобы сохранить (не задано) имена владельца и группы ... это означает, что вы не хотите, чтобы они менялись после передача.

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

-o, --owner
    This option causes rsync to set the owner of the destination file to be 
    the same as  the source file, but only if the receiving rsync is being run 
    as the super-user (see also the --super and --fake-super options). Without 
    this option, the owner of new and/or transferred files are set to the invoking 
    user on the receiving side...

-g, --group
    This option causes rsync to set the group of the destination file to be the same as 
    the source file. If the receiving program is not running as the super-user (or if
    --no-super was specified), only groups that the invoking user on the receiving side
    is a member of will be preserved. Without this option, the group is set to the default
    group of the invoking user on the receiving side...

man rsync

14
ответ дан 28 November 2019 в 20:01

Другое решение может состоять в том, чтобы изменить удаленного пользователя, который устанавливает rsync соединение с помощью --rsync-path. Я отправил полное объяснение здесь:

https://unix.stackexchange.com/a/546296/116861

0
ответ дан 28 November 2019 в 20:01

Последняя версия (по крайней мере 3.1.1) rsync позволяет вам указать «удаленное владение»:

--usermap=tom:www-data

Изменяет владение томом на www-data (также известный как PHP / Nginx). Если вы используете Mac в качестве клиента, используйте brew для обновления до последней версии. И на свой сервер скачайте архивы с исходниками, затем "сделайте" это!

5
ответ дан 28 November 2019 в 20:01

Версия 3.1.0 rsync представила - usermap и - groupmap , упомянутые Томасом, а также опцию удобства - chown , который хорошо подходит для вашего сценария.

--chown=USER:GROUP
    This option forces all files to be owned by USER with group GROUP.
    This  is  a  simpler  interface  than  using  --usermap  and  --groupmap directly,
    but  it  is implemented using those options internally, so you cannot mix them.
    If either the USER or GROUP is empty, no mapping for the omitted user/group will
    occur.  If GROUP is empty, the trailing colon may be omitted, but if USER is
    empty, a leading colon must  be supplied.

    If you specify "--chown=foo:bar, this is exactly the same as specifying
    "--usermap=*:foo --groupmap=*:bar", only easier.

Также требуются параметры -o и -g . Их исключение не приведет к обновлению их соответствующих атрибутов, но не приведет к ошибке.

rsync -og --chown=cmsseren:cmsseren [src] [dest]

Это косвенно упоминается в странице руководства , которая заявляет, что опция - chown «реализована с использованием - usermap и - groupmap внутри», и:

Для - параметр -usermap должен иметь какой-либо эффект, параметр -o ( - owner ) должен использоваться (или подразумевается), и приемник должен быть запущен как суперпользователь (см. также параметр - fake-super ).

Чтобы параметр - groupmap имел какой-либо эффект необходимо использовать (или подразумевать) параметр -g ( - groups ), и у получателя должны быть разрешения для установки этой группы.

61
ответ дан 28 November 2019 в 20:01

Теги

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