Назад | Перейти на главную страницу

Как заставить NFS в Linux экспортировать папку в OS X с идентификаторами пользователей OS X, чтобы я мог cp -a из Linux в OS X?

У меня Ubuntu GNOME 15.10 на одном компьютере и OS X 10.11.2 на другом. Я хочу перенести файлы из установки Ubuntu в установку OS X, но с сохранением разрешений.

В настоящее время я стараюсь экспортировать мой домашний каталог через NFS, смонтировать его с Mac и cp -a файлы с монтирования. Я знаю, что в OS X UID и GID назначаются иначе, чем в Linux. В Linux мой UID / GID равен 1000/1000, а в OS X мой UID / GID - 501/20.

Из того, что я могу собрать, имея это в моем /etc/exports должно быть достаточно, чтобы мои файлы Linux отображались как 501/20 на Mac:

/home/pietro/   <Mac's IP>(rw,sync,all_squash,no_subtree_check,insecure,anonuid=501,anongid=20)

и установка на Mac с

mkdir /tmp/q
sudo mount -t nfs <Linux's IP>:/home/pietro /tmp/q

Однако, когда я сажусь так, ls -l на Mac говорит мне, что права доступа к файлам все еще 1000/1000.

Я также пробовал:

все без толку.

Итак, мой вопрос: как мне настроить NFS, чтобы, когда я ls -l на стороне Mac я получаю 501/20 как владелец / группа, поэтому я могу безопасно cp -a?

Или я использую неправильный инструмент для работы и есть ли лучший способ? Мне нужно сохранить другие разрешения Unix, поэтому SMB не подходит. Я также не хочу рисковать изменением UID / GID учетной записи OS X.

Спасибо.

Я решил просто использовать rsync, который с версии 3.1.0 есть возможности делать то, что я хочу. Мне нужно было получить последнюю версию rsync, поскольку Apple по-прежнему поставляет старую версию с OS X, но после этого нужно было просто сделать

rsync3 --usermap 1000:501 --groupmap 1000:20 -a -v pietro@<Linux's IP>:/home/pietro/<path> <dest>

Спасибо, в любом случае!

ОБНОВИТЬ (на благо гуглеров) Наоборот тоже работает, тоже с Mac!

rsync3 --usermap 501:1000 --groupmap 20:1000 -a -v <src> pietro@<Linux's IP>:/home/pietro/<path>

<path> мне не нравились пробелы, но, возможно, я делаю что-то не так ...