web-dev-qa-db-fra.com

Problème d'autorisations de fichier sur OS X El Capitan et SMB Partager

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.

  • Quelqu'un a-t-il connu cette question depuis que vous avez mis à niveau vers OS 10.11?
  • Est-ce que quelqu'un sait une solution de contournement à coller avec les mêmes autorisations du serveur à SMB partage?
  • Ai-je oublié quelque chose dans mon SMB Configuration partage?

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.

6
Ambroise Maupate

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
2
HOCiNE BEKKOUCHE

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:

  • Problèmes lorsque plusieurs utilisateurs écrivent les mêmes fichiers.
  • Pas de prise en charge des attributs étendus natifs, des ACLS, etc.
  • Plus lentement que le SMB.

Voir aussi Discussion sur Apple Soutien Communities: https://discussions.apple.com/message/29104711

1
Elad

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".

1
Roger Gee

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.

0
shodanshok