Поздравления,
Мне смонтировали долю CIFS на моей машине Linux (Fedora 11). Эта доля содержит Подверсию, работающую копия, что я работаю с локально на удаленной машине. Удаленная машина является полем Linux рабочий Samba.
Я теперь хочу работать с репозиторием на своей машине, таким образом, я не должен входить в удаленную машину, чтобы сделать checkins и обновления. Однако svn
кажется, сталкивается с проблемами полномочий при попытке выполнить операции файла на доле.
например, (на моей машине)
$ svn update
svn: Can't open file '.svn/tempfile.tmp': Permission denied
Однако, когда я пытаюсь отредактировать тот же файл на командной строке (например, с vi
) это хорошо работает, и у меня, кажется, есть полные полномочия чтения-записи в тот файл.
Я также пытался делать новый контроль на своей машине на доле:
$ svn co svn://10.212.52.226/project/trunk project
svn: Can't create directory 'project/.svn': Permission denied
Но я могу сделать это вручную:
$ mkdir project/.svn
... и это работает.
Я монтирую долю как это:
mount.cifs //10.212.52.240/myname /mnt/mdev -o "uid=myname,gid=myname,password=mypass
Таким образом, я - владелец всех файлов на смонтированной доле.
В настоящее время я могу продолжить использовать подверсию в удаленной системе, которая продолжает хорошо работать. Но я хотел бы получить эту работу. Я ценю любые идеи, которые Вы можете иметь.
Спасибо
Править
Благодаря JohnnyLambada для предложения для использования strace
. Вот соответствующий бит strace
вывод для попытки контроля подверсии:
open("test/.svn/entries", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
lstat64("test", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
mkdir("test/.svn", 0777) = -1 EACCES (Permission denied)
write(2, "svn: Can't create directory 'test"..., 59svn: Can't create directory 'test/.svn': Permission denied
Это все еще сбивает с толку, поскольку я могу создать каталоги (с теми же режимами) на командной строке.
Я действительно замечал, однако, то использование touch
создать временный файл вызывает ошибку:
$ touch foo
touch: setting times of `foo': Permission denied
Хотя это не смогло сбросить метку времени, это действительно создавало файл.
У меня была подобная проблема с долей CIFS от моего D-Link DNS 323. Я пытался играть с различным mount.cifs
опции (страница справочника) до наталкивания nounix
который работавший для меня.
nounix: Отключите Расширения Unix CIFS для этого монтирования. Это может быть полезно для выключения нескольких настроек сразу. Это включает POSIX acls, блокировки POSIX, пути POSIX, поддержку символьной ссылки и получающий uids/gids/mode с сервера. Это может также быть полезно для работы вокруг ошибки в сервере, который поддерживает Расширения Unix.
Так, в моем случае, моем /etc/fstab
теперь похож на это:
//192.168.100.101/Volume_1 /nas cifs rw,nounix,user=,password=,uid=1000,gid=1000 0 0
Моей проблемой не было вполне то же как Ваша - я делал новый контроль репозитория SVN к новому каталогу:
$ svn co https://example.com/project/trunk /nas/project
svn: Can't change perms of file '/nas/project/.svn/entries': Permission denied
Трудно знать то, что точно идет не так, как надо. Я попытался бы выполнить команду под strace для наблюдения, какой системный вызов идет не так, как надо и какова ошибка. Как это:
strace svn update >/tmp/strace.out 2>&1
Вы закончите с большим "/tmp/strace.out" файлом. Смотрите там для текста "Отклоненное разрешение". Чуть выше его, необходимо искать любой системный вызов, вызвал ошибку. Отредактируйте свой вопрос с несколькими строками вывода перед ошибкой.