Ошибки разрешения 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.