Bir CIFS paylaşımında bir alt sürüm deposunu teslim etmeye çalışırken izin hataları


2

Selamlar,

Linux makineme monte edilmiş bir CIFS paylaşımım var (Fedora 11). Bu paylaşım, uzak makinede yerel olarak çalıştığım bir Subversion çalışan kopyası içeriyor. Uzaktaki makine, Samba'nın çalıştığı bir Linux kutusudur.

Şimdi makinemdeki depo ile çalışmak istiyorum, bu yüzden check-in ve güncelleme yapmak için uzaktaki makineye giriş yapmak zorunda değilim. Ancak, svnpaylaşımda dosya işlemleri gerçekleştirmeye çalışırken izin sorunları ile karşılaşıyor gibi görünüyor.

örneğin (makinemde)

$ svn update
svn: Can't open file '.svn/tempfile.tmp': Permission denied

Ancak, aynı dosyayı komut satırında düzenlemeye çalıştığımda (örneğin ile vi) düzgün çalışıyor ve bu dosya için tam okuma / yazma izinlerine sahip görünüyor.

Makinemde yeni bir ödeme yapmayı da denedim:

$ svn co svn://10.212.52.226/project/trunk project
svn: Can't create directory 'project/.svn': Permission denied

Ama el ile yapabilirim:

$ mkdir project/.svn

...ve çalışıyor.

Paylaşımı şöyle yapıyorum:

mount.cifs //10.212.52.240/myname /mnt/mdev -o "uid=myname,gid=myname,password=mypass

Bu yüzden bağlı paylaşımdaki tüm dosyaların sahibiyim.

Şimdilik, uzak sistemde çöküşü kullanmaya devam edebiliyorum, bu da iyi çalışıyor. Ama bunun işe yaramasını istiyorum. Aklınıza gelebilecek tüm fikirleri takdir ediyorum.

Teşekkürler

Düzenle

Öneri kullanması için JohnnyLambada'ya teşekkürler strace. straceSubversion checkout işlemini denemek için çıktının ilgili biti :

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

Komut satırında (aynı modda) dizinler oluşturabildiğim için hala kafa karıştırıcı.

Ancak, touchgeçici bir dosya oluşturmak için kullanmanın bir hataya neden olduğunu fark ettim :

$ touch foo
touch: setting times of `foo': Permission denied

Zaman damgasını sıfırlayamasa da dosyayı oluşturdu.

Yanıtlar:


1

D-Link DNS 323'teki CIFS paylaşımında da benzer bir sorun yaşadım. Vuruşa kadar çeşitli mount.cifsseçenekler ( manpage ) ile oynamaya nounixçalıştım.

nounix: Bu montaj için CIFS Unix Extensions'ı devre dışı bırakın. Bu, aynı anda birden fazla ayarı kapatmak için faydalı olabilir. Bu POSIX acls, POSIX kilitleri, POSIX yolları, sembolik bağlantı desteği ve sunucudan uids / gids / mode almayı içerir. Bu, Unix Extensions'ı destekleyen bir sunucudaki bir hatayı gidermek için de faydalı olabilir.

Yani, benim durumumda, /etc/fstabşimdi şunun gibi görünüyor:

//192.168.100.101/Volume_1  /nas    cifs    rw,nounix,user=,password=,uid=1000,gid=1000    0   0

Benim sorunum sizinkilerle tamamen aynı değildi - yeni bir dizine svn deposu için yeni bir ödeme yapıyordum:

$ svn co https://example.com/project/trunk /nas/project
svn: Can't change perms of file '/nas/project/.svn/entries': Permission denied

1

Neyin yanlış gittiğini bilmek zor. Hangi sistem çağrısının yanlış gittiğini ve hatanın ne olduğunu görmek için strace altındaki komutu çalıştırmayı denerdim. Bunun gibi, böyle:

strace svn update >/tmp/strace.out 2>&1

Büyük bir "/tmp/strace.out" dosyası ile biteceksiniz. "İzin verilmedi" metni için bir göz atın. Hemen üstünde, hangi sistem çağrısı hataya sebep olursa olsun aramalısınız. Sorunuzu, hatadan önceki birkaç çıktı satırıyla düzenleyin.


Önerin için teşekkürler; Orijinal
gönderiyi

Yani söylediğin şey test / .svn oluşturabilir misin? Garip. Aynı sistem çağrısı yapıp yapmadığını görmek için mkdir test / .svn komutunu strace altında çalıştırmayı deneyin.
JohnnyLambada
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.