Ошибки разрешения rsync на общем ресурсе smbfs

У меня есть NAS, настроенный, я пытаюсь rsync файлы к нему. Это прекрасно работает для файла, которым я владею

$ id dogmatic69 
uid=1000(dogmatic69) gid=1000(dogmatic69) groups=1000(dogmatic69),4(adm),20(dialout),24(cdrom),33(www-data),46(plugdev),110(lpadmin),111(sambashare),112(admin)

Файлы проблем принадлежат пользователю www-data

$ id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)

При запуске есть множество ошибок, таких как:

rsync: failed to set permissions on "/some/file": Operation not permitted (1)

Я попытался настроить общий ресурс для обоих пользователей, но все еще получаю проблему

sudo smbmount //server/development development -o credentials=/home/dogmatic69/.smbpassword,uid=33,gid=33

а также

sudo smbmount //server/development development -o credentials=/home/dogmatic69/.smbpassword,uid=1000,gid=1000

все исходные файлы принадлежат www-данным и имеют g + rw, поэтому пользователь dogmatic69 может их просматривать / редактировать.

$ ls -al
total 956
drwxrwxr-x 11 www-data www-data   4096 2012-06-21 14:09 .
drwxr-xr-x 13 root     root       4096 2012-06-26 11:44 ..
drwxrwxr-x 17 www-data www-data   4096 2012-06-21 14:10 folder1
drwxrwxr-x  7 www-data www-data   4096 2010-10-11 02:24 folder2
-rw-rw-r--  1 www-data www-data 510649 2011-05-26 20:48 file.html
-rw-rw-r--  1 www-data www-data  78792 2011-05-26 20:15 other.html

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

Редактировать:

Сервер, на котором размещены файлы, представляет собой NAS на базе Linux, это простая коробка без ssh и выбора NFS или SMBFS. Я играл с NFS, но нашел это довольно дерьмовым, и несколько человек сказали, что он довольно устарел.

2 ответа

Решение

На самом деле это было довольно просто... Я немного покопался в опциях rsync и rsync -a сочетает в себе несколько вариантов. Одним из них является -O сохранить право собственности. Обратите внимание, что эта опция требует запуска rsync с правами root.

Просто добавив sudo в начало команды, и это решило проблему.

Удалите все параметры из командной строки rsync, чтобы установить владельца. Rsync пытается установить разрешения, и, очевидно, ваш SMB-сервер не поддерживает эту функцию.

Если //server/development Windows, то попытка настроить права доступа почти никогда не сработает. Если это хост Samba, вам нужно убедиться, что расширения CIFS UNIX включены на сервере, и вам нужно использовать mount.cifs не smbmount если вы хотите иметь возможность использовать разрешения в стиле Unix через SMB.

Другие вопросы по тегам