windows - Cygwin SVN udtjekning ACL problem

Indlæg af Hanne Mølgaard Plasc

Problem



Min Cygwin SVN klient ændrede adfærd vedrørende Windows ACL mellem version 1.6.17 og 1.7.4.


[[UPDATE: SVN 1.7.4 og 1.6.17 har faktisk samme adfærd. Problemet ligger andre steder. Det jeg ikke fik, er det punkt, hvor det stoppede med at arbejde, sandsynligvis en Cygwin-opdatering. ]]


[[UPDATE: Den Cygwin-bygde SVN-klient ærer faktisk svn:executable søgeordet ved at indstille den eksekverbare ACL-bit til den aktuelle bruger. Omtalen 'har ingen virkning under Windows' i SVN-bogen skal tages med forsigtighed. ]]


Kører en check-out med 1.7.4 sætter alle uddragne filer til skrivebeskyttet for den aktuelle bruger. For eksempel, og at det er irriterende i mit specifikke tilfælde, sætter det ikke udførelsesflagget for batcher. I filegenskaberne flettes sikkerhedsfanen Read til Everyone og Read/Write for den aktuelle bruger.


Hvis du kører en check-out med 1.6.17, vises ikke denne adfærd. Filerne tjekkes ud med brugervenlige rettigheder, og batches kan udføres. I filegenskaberne klikker fanen Sikkerhed Read & execute/Read for Everyone og Modify/Read & execute/Read/Write]] for den nuværende bruger, hvilket jeg forventer fra en check-out. Denne check-out er en del af en scriptet proces, så miljøet er det samme i begge testscenarier.


Jeg fandt ingen omtale af den adfærd i svn billetter, og havde ingen held at søge. De fleste af resultaterne vedrører konfiguration af server-side.


Jeg er ingen ACL/NTFS ekspert, jeg læste Cygwin posix/windows artiklen på http://cygwin.com/cygwin-ug-net/ntsec.html, men det præciserede ikke forskellen. [22]



  • Jeg prøvede svn: eksekverbare søgeord, men som forventet har dette ingen effekt under Windows.

  • Den samme forskel sker under Windows 7 eller under XP.

  • Jeg bemærkede, at TortoiseSVN 1.7.6 (bygget mod 'native' SVN 1.7.4) kører check-out korrekt.

  • Jeg har standard friskinstallation /etc/fstab, som er tom og ikke /etc/fstab.d konfigureret



Det er ikke, at jeg er utilfreds med 1.6.17, men nogle af funktionerne i 1.7.4 er interessante.


Hvordan løser jeg det mærkelige adgangsretsproblem?

Bedste reference


Nå var løsningen at genopbygge /etc/passwd og /etc/group ved hjælp af mkpasswd og mkgroup.


Rulning af ændringerne til disse filer vender dog ikke tilbage til konfigurationen i en tilstand, der udløser problemet. Eventuelt at genopbygge dem og køre check-out igen havde en indvirkning på selve SVN-værktøjet, men jeg aner ikke hvorfor og hvordan.


REDIGER Nej, problemet er ikke løst.

Andre referencer 1


I sidste ende blev dette løst ved at finde 'ing og chmod' ing filer, der anses for at være eksekverbare:


sh - c "find \%MYDIR\% -name '*.bat *.sh *.exe *.com *.cmd' -exec chmod u+x {} ;"


Det, jeg helt sikkert savnede på grund af manglende tid til at undersøge, er at svn:executable rent faktisk skulle håndteres af Cygwin-bygget SVN for at tilføje det korrekte tilladelsesflag. Jeg bliver nødt til at tjekke det snart.


[[UPDATE: Den Cygwin-bygde SVN-klient ærer svn:executable, så det er den måde at løse problemet på. ]]