У меня есть 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-data и имеют 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, но нашел его довольно дерьмовым, и некоторые люди сказали, что он довольно устаревший.
Удалите все параметры из командной строки rsync, чтобы установить владельца. Rsync пытается установить разрешения, и, очевидно, ваш SMB-сервер не поддерживает эту функцию.
Если //server/development
- это окно Windows, то попытка настроить права владения практически никогда не сработает. Если это хост Samba, вам необходимо убедиться, что на сервере включены расширения CIFS UNIX Extensions, и вам необходимо использовать mount.cifs
не smbmount
если вы хотите иметь возможность использовать разрешения в стиле unix через SMB.
На самом деле это было довольно просто ... Я еще немного покопался в параметрах rsync и rsync -a
совмещает в себе несколько вариантов. Один из них -O
сохранить право собственности. Обратите внимание, что эта опция требует, чтобы rsync запускался с правами root.
Просто добавив sudo в начало команды, проблема устранилась.