Comme il y a toujours pas mal de messages concernant les droits des fichiers vu par linux / par Samba et par Windows ... voici quelques clefs pour comprendre ... sachant que dès qu l'on croit avoir compris ... on tombe sur un autre cas. Je pars du principe que vous avez déclaré vos utilisateurs et partages sur le Qnap.
1) LA RÉFÉRENCE DES RÉFÉRENCES, le site de samba et l'article en Anglais ci-après :
http://www.samba.org/samba/docs/man/Sam ... #id2613463
Bon ... c'est pas clair, je vais résumer.
A) lorsque vous partagez une ressources depuis un poste Windows (ou un client smb quelconque) la première chose à savoir c'est sous quel nom d'utilisateur vous serez vu par le Qnap, donc soit votre utilisateur Windows est aussi défini comme utilisateur Linux / samba du Qnap et donc vous êtes connu sous ce nom, soit vous êtes "guest" (utilisateur invité de Linux).
MAIS comment je le sais
.... Samba n'exécute aucun des fichiers qu'il partage.
.... Les droits serveur Windows sont : lecture, modification et contrôle complet .
.... Un fichier de plus peut avoir les attributs : archive, caché et système
.... Linux gère les droits au niveau utilisateur , groupes et autres
.... Samba gère ses propres droits au niveau DES PARTAGES pour les utilisateurs et groupes (smb.conf) MAIS c'est surtout utile pour savoir, indépendamment de ce qu'il y a dans chaque ressource partagée si l'utilisateur peut partager et en lecture seule ou écriture la ressources, c'est aussi utile pour la création des nouveaux fichiers. LE POINT IMPORTANT c'est que samba donne des droits au niveau du répertoire partagé (ressource) droit dont hérite les utilisateurs des sous-répertoire et fichier DONC un sous-répertoire AURA les droits hérités du répertoire partagé et pas les SIENS propres.
CONCLUSION : si vous voulez des droits au niveau d'un répertoire, il ne faut pas que le répetoire parent soit lui-même partagés avec d'autres droits.
1 PARTAGE = 1 RÉPERTOIRE = 1 GESTION POUR TOUT LE REP. DES DROITS.
C) linux
.... les droits sont r (lecture) w (écriture) x (exécution) X (exécution mais avec héritage du répertoire)
.... ces droits sont répartis en 3 fois 3 entités : rwx pour le propriétaire du fichier, pour les groupes du propriétaires et enfin pour les autres
DONC l'utilisateur connecté via partage Windows si il est le même que le propriétaire du fichier / répertoire alors on applique les droits du propriétaire
sinon ... on regarde si l'utilisateur connecté appartient au groupe du fichier / répertoire si oui on applique les règles groupe
sinon ... on applique les règles autres
exemple
fichier -rw-r----- user1 group1 (donc rw(read/write) pour user1, r(read) pour le group1, rien pour les autres.
le partage est demandé par user1:group2 .... il a les droits de lire ET écrire (on ne s'occupe pas du groupe)
le partage est demandé par user2:group1 .... il a le droit de lire puisqu'il fait parti du groupe group1 MAIS n'est pas user1
le partage est demandé par user3:group3/group2/group1 là c'est un utilisateur attaché a plusieurs groupes, bien que son groupe principal soit group3 comme il est aussi membre de group1 il aura le droit de lire.
le partage est demandé par guest:guest .... il n'a aucun droit. ..........OUF!
D) les équivalences Samba / Windows
r = lire; w = change; rw full control .
E) BON MAIS DANS TOUS CA ... et les fichiers cachés que je ne vois plus après upgrade (par exemple)
La, comme Samba n'utilise PAS le bit x (exécute) ... les petits malins l'ont utilisé pour représenter les bits : archive, caché et système.
A – Archive ***x****** utilise le x du propriétaire MAIS ne s'occupe pas du nom de celui-ci
S – System ******x*** utilise le x du groupe (idem s'en fou... du groupe réel)
H – Hidden *********x utilise le x des autres (other)
DONC si vous ne voyez plus vos fichiers
1) vérifier que vous n'êtes pas connecté en guest ou alors que les droits autres sont bien définis comme vous le voulez.
2) si vos fichiers sont cachés ... pour les faire réapparaitre, allez a la racine de chaque partage
ex. :
cd /share/Qmultimedia
là, changer les droits Linux comme suit
chmod -R a+rw . (ceci veut dire j'ajoute (+) r et w a : a = (proprio + groupe + autres) -R je balaye tous les fichiers et tous les sous-répertoires (personnellement je suis plus restrictif ... car je crois savoir ce que je fais
chmod -R a-x . (là j'enlève (-) le bit exécute pour tous, plus d'attributs archive, caché ou système, revoilou mes fichiers cachés visibles ...)
chmod -R g+X,o+X,u+x . (là plus sioux, je rajoute au group (g) et aux autres (o) un X qui leur donne l'héritage des droits de la racine ... donc je repasse la main a Samba et a ces propres droits (voir les fichiers, etc... etc...) ET je positionne le bit x de l'utilisateur, donc le bit d'archive, qui me sera nécessaire pour certain outils Windows de backup sélectif.
Si nécessaire (j'ai changé d'utilisateur Windows propriétaire ou j'ai crée de nouveaux groupes ....) je peux changer le nom du propriétaire et/ou du groupe.
ex. (c'est n'importe quoi c'est un exemple
chown -R guest * (là je donne comme propriétaire de tous mes fichiers guest)
chgrp -R groupguest * (là le groupe propriétaire devient groupguest)
et si je suis faignant :
chown -R guest:grouguest * (qui fait les deux en une passe).
Voilà, bonne lecture
Philippe.
NB toute correction (du contenu pas des fautes ...) sera appréciée.















