Depuis que nous avons mis à niveau vers OSX El Capitan, nous avons connu des erreurs d'autorisations de fichier étrange avec notre SMB Server.
Nous avons une machine de serveur Ubuntu hébergeant nos fichiers de travail sur un fichier SMB à chacun de nos postes de travail MAC. Nous utilisons GIT sur SMB avec Sourcetree Pour construire nos sites Web (pratique de partager la même base de données et les mêmes fichiers), puisque nous avons mis à niveau vers OS X el Capitan, les autorisations de fichier ne sont pas identiques et git marquent tous les fichiers modifiés à mesure que leurs Perm sont passés de 0664 à 0775 (ou 0644 à 0755).
Par exemple, voici le ls -la
Sortie utilisant SSH sur notre serveur de dev
➜ CashierTheme git:(develop) ls -la
total 72
drwxrwsr-x 9 nestorwww nestorwww 4096 oct. 12 23:42 .
drwxrwsr-x 6 nestorwww nestorwww 4096 avril 14 17:33 ..
-rw-rw-r-- 1 nestorwww nestorwww 12261 oct. 12 23:42 CashierThemeApp.php
-rw-rw-r-- 1 nestorwww nestorwww 56 oct. 12 23:42 composer.json
-rw-rw-r-- 1 nestorwww nestorwww 352 oct. 12 23:42 config.yml
drwxrwsr-x 2 nestorwww nestorwww 4096 oct. 12 23:42 Controllers
-rw-rw-r-- 1 nestorwww nestorwww 170 oct. 12 23:42 .editorconfig
drwxrwsr-x 2 nestorwww nestorwww 4096 oct. 12 23:42 Entities
drwxrwsr-x 4 nestorwww nestorwww 4096 oct. 12 23:42 Forms
drwxrwsr-x 8 nestorwww nestorwww 4096 oct. 12 23:42 .git
-rw-rw-r-- 1 nestorwww nestorwww 35 oct. 12 23:42 .gitignore
-rw-rw-r-- 1 nestorwww nestorwww 1060 oct. 12 23:42 LICENSE.md
-rw-rw-r-- 1 nestorwww nestorwww 1819 oct. 12 23:42 README.md
drwxr-sr-x 2 nestorwww nestorwww 4096 oct. 12 23:42 Repositories
drwxrwsr-x 6 nestorwww nestorwww 4096 oct. 12 23:42 Resources
drwxrwsr-x 10 nestorwww nestorwww 4096 oct. 12 23:42 static
Les autorisations de fichiers sont correctes. Ensuite, voici le ls -la
À partir de notre SMB= (de mon Mac):
➜ CashierTheme git:(develop) ✗ ls -la
total 328
drwx------ 1 ambroisemaupate staff 16384 12 oct 23:42 .
drwx------ 1 ambroisemaupate staff 16384 14 avr 17:33 ..
-rwx------ 1 ambroisemaupate staff 170 12 oct 23:42 .editorconfig
drwx------ 1 ambroisemaupate staff 16384 12 oct 23:43 .git
-rwx------ 1 ambroisemaupate staff 35 12 oct 23:42 .gitignore
-rwx------ 1 ambroisemaupate staff 12261 12 oct 23:42 CashierThemeApp.php
drwx------ 1 ambroisemaupate staff 16384 12 oct 23:42 Controllers
drwx------ 1 ambroisemaupate staff 16384 12 oct 23:42 Entities
drwx------ 1 ambroisemaupate staff 16384 12 oct 23:42 Forms
-rwx------ 1 ambroisemaupate staff 1060 12 oct 23:42 LICENSE.md
-rwx------ 1 ambroisemaupate staff 1819 12 oct 23:42 README.md
drwx------ 1 ambroisemaupate staff 16384 12 oct 23:42 Repositories
drwx------ 1 ambroisemaupate staff 16384 12 oct 23:42 Resources
-rwx------ 1 ambroisemaupate staff 56 12 oct 23:42 composer.json
-rwx------ 1 ambroisemaupate staff 352 12 oct 23:42 config.yml
drwx------ 1 ambroisemaupate staff 16384 12 oct 23:42 static
Alors, quand j'entre le git status
Commande sur le serveur DEV, tout va bien:
➜ CashierTheme git:(develop) git status
Sur la branche develop
Votre branche est à jour avec 'Origin/develop'.
rien à valider, la copie de travail est propre
Et ... voici le git status
Sortie du SMB Partager:
➜ CashierTheme git:(develop) ✗ git status
On branch develop
Your branch is up-to-date with 'Origin/develop'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: .editorconfig
modified: .gitignore
modified: CashierThemeApp.php
modified: Controllers/ContactController.php
modified: Controllers/InvoiceController.php
modified: Controllers/PaymentController.php
modified: Controllers/PostingController.php
modified: Controllers/QuoteController.php
modified: Entities/BankOperationTrait.php
modified: Entities/Contact.php
modified: Entities/Invoice.php
modified: Entities/Letter.php
modified: Entities/PayableInterface.php
modified: Entities/Payment.php
modified: Entities/Posting.php
modified: Entities/PostingObject.php
modified: Entities/Quote.php
modified: Forms/ContactSelectorType.php
modified: Forms/ContactType.php
modified: Forms/DataTransformer/ContactToNumberTransformer.php
modified: Forms/Filters/ContactFilterType.php
modified: Forms/Filters/PostingFilterType.php
modified: Forms/Filters/QuoteFilterType.php
modified: Forms/InvoiceStatusType.php
modified: Forms/InvoiceType.php
modified: Forms/PaymentType.php
modified: Forms/PostingObjectType.php
modified: Forms/PostingObjectUnitType.php
modified: Forms/PostingType.php
modified: Forms/QuoteStatusType.php
modified: Forms/QuoteType.php
modified: LICENSE.md
modified: README.md
modified: Repositories/PostingRepository.php
modified: Resources/config/.gitignore
modified: Resources/config/fonts.default.xml
modified: Resources/config/pdf_stylesheet.default.xml
modified: Resources/firewalled-routes.yml
modified: Resources/imports/roles.rzt
modified: Resources/imports/settings.rzt
modified: Resources/routes.yml
modified: Resources/translations/messages.en.xlf
modified: Resources/translations/messages.fr.xlf
modified: Resources/views/404.html.twig
modified: Resources/views/admin/test.html.twig
modified: Resources/views/base.html.twig
modified: Resources/views/baseAnonymous.html.twig
modified: Resources/views/blocks/filters.html.twig
modified: Resources/views/blocks/paidtotals.html.twig
modified: Resources/views/blocks/totals.html.twig
modified: Resources/views/blocks/totals.xml.twig
modified: Resources/views/blocks/waitingtotals.html.twig
modified: Resources/views/contacts/edit.html.twig
modified: Resources/views/contacts/list.html.twig
modified: Resources/views/dashboard/list.html.twig
modified: Resources/views/forms.html.twig
modified: Resources/views/invoices/edit.html.twig
modified: Resources/views/invoices/list.html.twig
modified: Resources/views/invoices/view.xml.twig
modified: Resources/views/modules/navigation-elements.html.twig
modified: Resources/views/modules/navigation.html.twig
modified: Resources/views/payments/edit.html.twig
modified: Resources/views/payments/list.html.twig
modified: Resources/views/pdfbase.xml.twig
modified: Resources/views/quotes/edit.html.twig
modified: Resources/views/quotes/list.html.twig
modified: Resources/views/quotes/view.xml.twig
modified: Resources/views/tabledforms.html.twig
modified: composer.json
modified: config.yml
modified: static/Gruntfile.js
modified: static/bower.json
modified: static/css/main.less
modified: static/css/normalize.less
modified: static/css/postings/commons.less
modified: static/css/style.less
modified: static/css/style.min.css
modified: static/css/vars.less
modified: static/css/vendor.less
modified: static/css/vendor.min.css
typechange: static/css/widgets/debugpanel.less
modified: static/css/widgets/nav.less
modified: static/fonts/fontawesome-webfont.woff2
modified: static/js/main.js
modified: static/js/vendor/jquery-2.1.3.min.js
modified: static/js/vendor/uikit.min.js
modified: static/package.json
modified: static/public/cashier-theme.08d1e458.min.js
modified: static/public/config/assets.config.php
modified: static/public/style.7474e8a1.css
modified: static/public/vendor-cashier-theme.1a8458ff.min.js
modified: static/public/vendor.03b81695.css
no changes added to commit (use "git add" and/or "git commit -a")
Avec le git diff
:
diff --git a/.editorconfig b/.editorconfig
old mode 100644
new mode 100755
diff --git a/.gitignore b/.gitignore
old mode 100644
new mode 100755
diff --git a/CashierThemeApp.php b/CashierThemeApp.php
old mode 100644
new mode 100755
diff --git a/Controllers/ContactController.php b/Controllers/ContactController.php
old mode 100644
new mode 100755
Etc
Et dernier extrait, voici mon SMB Configuration partage où je dirai explicitement à utiliser 0644 pour les fichiers et 0755 pour les répertoires.
[DevWebServer]
path = /var/www
force group = myuser
force user = myuser
browsable = yes
writeable = yes
create mask = 0644
directory mask = 0755
force create mode = 0644
force directory mode = 0755
hide dot files = no
guest ok = no
public = no
veto files = /._*/.DS_Store/.AppleDouble
delete veto files = yes
Nous n'avions aucun problème auparavant avec OS X Yosemite.
Pour ceux qui se demandent pourquoi nous utilisons Git sur SMB, c'est parce que nous travaillons avec beaucoup de gens en même temps de sites Web de construction. Avoir une copie sur nos postes de travail serait une douleur pour synchroniser des bases de données et des documents. Englisons
Merci de lire et de votre temps.
Ce travail pour moi
[Shared]
comment = Folder Shared
path = /path
unix extensions = no
force group = root
force user = root
browsable = yes
writeable = yes
create mask = 0644
directory mask = 0755
force create mode = 0644
force directory mode = 0755
hide dot files = no
guest ok = no
public = no
valid users = @users
Ce problème persiste toujours après la mise à niveau vers OS X 10.11.1.
En tant que solution de contournement partielle, vous pouvez partager les fichiers à l'aide de SSHF à la place de SMB. SSHFS conserve les autorisations, mais il a plusieurs inconvénients:
Voir aussi Discussion sur Apple Soutien Communities: https://discussions.apple.com/message/29104711
TL; DR Version :
mount_smbfs -f 0644 -d 0755 //<user@Host/share> <share>
Version longue :
Je sais que ce fil est vieux, mais c'est toujours un problème pertinent. Dans mon cas, j'utilise GIT sur CIFS pour travailler avec un arbre de travail à distance sur une instance Virtual Linux. Le référentiel Git existe réellement sur mon système hôte, mais j'ai la caisse sur le système distant. C'est ainsi que je peux développer mon application spécifique de Linux sur MacOS à l'aide d'un VM mais gardez le référentiel git dans l'hôte.
Quoi qu'il en soit, je rencontrais le même problème que l'OP. GIT a détecté des modifications du mode de fichier, désirant valider les fichiers avec des bits d'exécution depuis que le pilote d'actions a créé des fichiers réguliers avec des autorisations d'exécution par défaut. Pour contourner cela, j'ai compris comment monter la part de la part en utilisant le mount_smbfs
commande. Les options de clé sont -f
et -d
Pour le mode de fichier et le mode de répertoire respectivement.
Pour l'enregistrement, j'utilise MacOS 10.11.6 "El Capitan".
Essayez de désactiver les extensions UNIX à l'aide de la déclaration suivante de votre Ubuntu smb.conf
déposer:
unix extensions = no
Puis redémarrez Samba et voyez si le problème persiste.