10.12 Sierra Partage fichier entre utilisateurs d'un même mac

Li Pace

Membre confirmé
7 Janvier 2018
29
0
44
Bonjour,

Sur le MacBook de ma mère, il y a deux comptes, "Euridice", utilisateur administrateur, et "User", utilisateur standard pour les fois où elle a à prêter son mac à ses collaborateurs. Aux dossiers pré-installés "Bibliothèque", "Bureau" "Documents", "Images", etc du dossier de départ (avec la maison) "Euridice", elle en a ajouté un intitulé "Personnel".

En se connectant avec l'utilisateur "User", je me suis rendu compte que l'on pouvait accéder au dossier "Personnel" décrit précédemment. En revenant sur le compte "Euridice", j'ai vu que le dossier de départ était par défaut en lecture seule pour les "staff" et "everyone". Et qu'il en était de même pour tout dossier créé autre que les dossiers pré-installés ("bibliothèque", "bureau", etc...), et donc pour ce fameux dossier "Personnel".

Cela m'amène quelques questions:
1- Quelle est la différence entre ce staff et everyone?
2- Comment fait-on pour que le dossier "Personnel" créé a posteriori ait les mêmes options de partage que les dossiers pré-installés: Euridice -> lecture et écriture, Everyone ->accès interdit

Merci d'avance et bonne et heureuse année 2018
 
Bonjour Li Pace

1- Quelle est la différence entre ce staff et everyone?

Ce sont deux groupes (et pas utilisateurs individuels) -->

  • staff (équipe en Anglais) est le primary group (groupe primaire) : en font partie tous les utilisateurs qui ont un compte dans l'OS > donc aussi bien les utilisateurs admin que standards - mais pas les invités privés de compte permanent.
  • everyone (n'importe qui en Anglais) est le secondary group (groupe secondaire) : en fait partie absolument tout le monde - y compris donc les invités. Mais il y a aussi une foule d'utilisateurs invisibles dans l'OS - lequels n'ont pas de compte personnel mais une identité commençant par un undescore _ et qui sont des "fonctions_utilisatrices" dans le Système --> ils relèvent donc du everyone.

Tout objet présent dans le volume de l'OS (fichier ou dossier) se voit attribué des autorisations d'accès qui se distribuent toujours en une triplettre d'accédants - chacun doté d'une triplette de permissions.

  • la triplette d'accédant est : user > primary group > secondary group
  • la triplette de permissions est : read (lire) > write (écrire) > execute (exécuter - l'accès à un dossier ou un fichier exécutable)

L'user est variable (eurydice > toto > root etc.) > le primary group aussi (staff > admin > wheel) > le secondary group est toujours exclusivement everyone.

La triplette de permissions d'un accédant est aussi variable (une permission pouvant être remplacée par une absence de permission) --> rwx (read_write_execute = accès complet) > r-- (lecture seule) > --- (accès interdit).

----------

2- Comment fait-on pour que le dossier "Personnel" créé a posteriori ait les mêmes options de partage que les dossiers pré-installés: Euridice -> lecture et écriture, Everyone ->accès interdit

Le sous-dossier Personnel a des autorisations : eurydice = rwx > staff = r-x > everyone = r-x (tu noteras que le Finder n'affiche jamais dans une fenêtre d'information la permission exécutive x - condition nécessaire de la lecture sur un dossier en tant que permission d'« exécuter l'entrée au répertoire »). Ce qui dans le Terminal s'afficherait ainsi :
Bloc de code:
drwxr-xr-x eurydice staff everyone
(d au départ = directory : dossier --> désignation de la nature de l'objet).

Le répertoire global de compte d'utilisatrice eurydice a les mêmes autorisations que Personnel --> c'est pour permettre l'accès à d'autres à des dossiers partageables que l'utilisateur crée dans son dossier de compte. Comme le sous-dossier Personnel ici.

Par contre les sous-dossiers natifs du compte eurydice : Desktop > Documents > Library etc. portent graphiquement un sens interdit pour quiconque n'est pas eurydice. Ce qui veut dire que les autorisations sur ces sous-dossiers sont : eurydice = rwx > staff = --- > everyone = ---. Soit dans le Terminal :
Bloc de code:
drwx------ eurydice staff everyone
(note : ce qui s'affiche dans la fenêtre de code n'est pas une commande, ici, mais ce qui serait un retour de la commande ls -al ciblée sur l'objet)

C'est nécessaire pour assurer la confidentialité des données d'un compte d'utilisateur.

Si tu vires les autorisations du sous-dossier Personnel du dossier de compte eurydice = drwxr-xr-x eurydice staff everyone --> à une interdiction d'accès pour quiconque n'est pas eurydice = drwx------ eurydice staff everyone => tu fais du sous-dossier Personnel un dossier protégé au même titre que Desktop etc. Il ne peut donc plus jouer alors son rôle de dossier partagé pour des utilisateurs qui se seraient loggés dans le compte User.

Cette requête me paraît donc en contradiction avec les intentions d'eurydice lors de la création de ce sous-dossier ouvert en accès par destination.
 
Dernière édition par un modérateur:
Bonjour Macomaniac,

Merci bien pour ta réponse pleine d'enseignements!

Cette requête me paraît donc en contradiction avec les intentions d'eurydice lors de la création de ce sous-dossier ouvert en accès par destination.
Tu sais, les intentions de ma mère en matière d'informatique... :D
Ce qui est sûr, c'est que ce dossier Personnel n'avait pas pour but d'être visible des autres utilisateurs...

Et donc, comment fait-on pour changer les autorisations d'accès. J'imagine qu'en ligne de commande, c'est fait en une ligne, mais sans utiliser le terminal, est-ce possible? A priori, quand on va dans les infos du dossier, on a seulement les options "lecture et écriture" (rwx), "lecture seulement" (r-x), "écriture seulement (boîte de dépôt)" (w-x) et pas "accès interdit" comme c'est le cas pour les dossiers pré-installés

En outre, je veux bien les lignes de commande pour gérer ces autorisations...

Et comment fais-tu pour écrire avec cette police sans avoir à passer par le sélecteur de police et ensuite cliquer sur B?
 
Ouvre une fenêtre du Terminal > fais un glisser-déposer au pointeur du dossier Personnel dans la fenêtre du Terminal --> ce qui inscrit automatiquement le chemin au dossier et son nom.

Poste la ligne retournée ici --> que je connaisse l'adresse exacte du dossier.

comment fais-tu pour écrire avec cette police sans avoir à passer par le sélecteur de police et ensuite cliquer sur B?

Je ne fais pas sans mais avec (donc --> comme tu le décris)-
361608_original.png
 
Bon, je te le fais avec mon ordi parce que je n'ai plus l'autre sous la main, mais c'est la même histoire...

/Users/maintrot/Programmation (je n'arrive plus à retrouver comment on met des lignes en format code. C'est d'ailleurs bizarre qu'il n'y ait pas un bouton pour ça dans la barre de toutes les icônes de formatage...)

Cela dit, pour ce qui est de ma mère, c'est impossible de lui faire apprendre quoique ce soit en ligne de code (si tu as des cours intéressants, je suis preneur, j'ai trouvé ça qui a l'air très bien fait...)
 
(je n'arrive plus à retrouver comment on met des lignes en format code. C'est d'ailleurs bizarre qu'il n'y ait pas un bouton pour ça dans la barre de toutes les icônes de formatage...)
C'est caché derrière le petit bouton + dans un carré :
Voici comment tu vas pouvoir poster ici ce tableau sans avoir besoin de prendre des captures d'écran -->
  • tu sélectionnes le tableau > ⌘C pour les copier dans le presse-papier > ⌘Q pour quitter le «Terminal» > option  : "Obtenir de l'aide en ligne" (dans la fenêtre des 4 Utilitaires) > ce qui lance un navigateur «Safari» 
  • page Apple par défaut > un clic sur l'adresse de haut de page pour l'éditer > saisis  : macgénération (tout court  : c'est une barre de recherche Google) et valide > tu atteins le site MacGé > Forums > te connectes > ce fil 
  • dans la page de ce fil de MacGé > presse le bouton (carré avec un + inscrit - juste au milieu de la largeur de la fenêtre totale) dans la barre de menus au-dessus du champ de saisie d'un message > menu  : </> Code > par ⌘V colle dans la fenêtre Code > presse le bouton Insérer (ce procédé permet un affichage fenêtré qui économise l'espace de page en respectant la mise en forme des tableaux du «Terminal» --> d'où une plus grande lisibilité)
 
À supposer donc l'objet suivant -->
Bloc de code:
/Users/maintrot/Programmation

à savoir le sous-dossier Programmation du dossier de compte maintrot présent dans le répertoire des Users.

  • Je vais supposer que les 3 accédants à ce dossier sont : user = maintrot > primary group = staff > secondary group = everyone
  • Je vais supposer encore que les triplettes de permissions distribuées à ces 3 accédants sont : maintrot = rwx > staff = r-x > everyone = r-x
  • Je vais supposer enfin que tu veuilles fermer l'accès à ce dossier Programmation à quiconque n'est pas toi (maintrot)
Alors je sais que l'ensemble des permissions sur le dossier devra être -->
Bloc de code:
drwx------ maintrot staff everyone

  • les jeux de lettres (r > w > x) pour exprimer les permissions constituent ce sont appelle des valeurs symboliques. Ces valeurs symboliques ont un équivalent numérique strict qui est le suivant --> la permission r = 4 > w= 2 > x = 1. Ces conventions numériques pour traduire en chiffres les 3 valeurs symboliques constituent les valeurs octales. Elles fonctionnent ainsi : pour chaque accédant à un objet > on fait l'addition arithmétique des 3 valeurs octales qui lui sont attribuées > ce qui donne le chiffre unique de ses permissions. rwx = 4+2+1 => 6 ; r-x = 4+0+1 => 5 ; --- = 0+0+0 => 0 [etc. pour toutes les combinaisons possibles].

On obtient donc en valeurs octales l'équivalent suivant pour les permissions souhaitées sur le dossier Programmation :
Bloc de code:
700 maintrot staff everyone

# s'exercer mentalement - sans rien écrire - à convertir un ensemble de permissions exprimées en valeurs symboliques --> en valeurs octales ; et vice-versa ; càd. à convertir des lettres en chiffres et vice-versa --> c'est une condition de base pour être à l'aise avec la manipulation des permissions dans le Terminal.​

L'utilitaire qui manipule les permissions d'un objet sans changer les accédants est chmod (change_mode). Pour ce qui est des permissions basiques (POSIX) sur un objet (= permissions rwx) --> la syntaxe de la commande est simple :
Bloc de code:
[sudo] chmod [permissions] [objet]

(sudo peut être requis pour modifier les permissions sur un objet si le propriétaire (user) est différent de l'opérateur)

Donc j'obtiens les 2 commandes possibles (équivalentes) -->
Bloc de code:
chmod g=---,o=--- /Users/maintrot/Programmation
chmod 700 /Users/maintrot/Programmation

  • à contempler ces 2 variantes --> tu comprends immédiatement la commodité de l'expression en valeurs octales : on ne risque pas de s'emmêler les pinceaux dans l'attribution des valeurs symboliques

La manipulation des valeurs symboliques permet, nonobstant, des variations que ne permet pas l'usage des valeurs octales, car l'expression octale est toujours "holistique" (totale) > alors que l'expression symbolique peut être "spécifique" (ponctuelle).

Déjà tu as pu voir que la commande symbolique faisait abstraction de l'user (maintrot) --> ce qui équivaut à laisser ses permissions intouchées. Ensuite > au lieu d'utiliser la syntaxe : g=--- (qui se lit : group = aucune permissions) et o=--- (qui se lit : other <l'équivalent symbolique de everyone> = aucune permission) => j'aurai pu me contenter de la rédaction suivante :
Bloc de code:
chmod g-rx,o-rx

  • qui se lit : group = soustraction (-) de rx & other = soustraction (-) de rx => comme la permissions w faisait déjà défaut à ces 2 groupes --> on obtient bien un --- au final

# ces raffinements de détails en informatique ont quelque chose de fascinant pour l'esprit --> parce qu'ils révèlent une exigence d'exactitude précise quelle que soit l'échelle. C'est ce que Descartes applelait la « distinction » : la qualité de précision exacte dans le détail. Descartes valorisait aussi la « clarté » : la lumière globale dans la conception. Sachant qu'un paradoxxe semble affecter le fonctionnement de l'esprit humain : un souci absolu de « distinction » va de pair avec une « obscurité » conceptuelle --> au sens où l'esprit ne conçoit plus l'ensemble en idée en s'emprisonnant dans du détail technique infime. Alors qu'il peut y avoir une puissante « clarté » dans une idée d'ensemble > exigeant de ce fait même une certaine « confusion » dans le détail (la précision). Trop d'attention aux détails et à leur précision > empêche toujours l'invention « claire » dans la pensée. Il faut savoir mettre en parenthèse le détail (càd. convertir de force la précision exacte à une confusion des détails) pour que la pensée soit libérée et puisse évoluer dans la clarté. L'idéal cartésien des idées « claires & distinctes » (càd. aussi lumineuses dans l'ensemble que précises dans le détail) est une impossibilité. Ou à tout le moins une vision arrêtée --> car la précision du détail arrête toujours la pensée et l'empêche de jouer librement dans la lumière.​

Tu auras compris d'après mon commentaire ci-dessus que --> toutes les fois où l'emploi des valeurs octales est possible > personnellement parlant j'y ai recours dans une commande > car ainsi je me débarrasse de l'attention forcenée au détail qui est de rigueur avec l'emploi des valeurs symboliques.

Il faut noter qu'une option récursive -R (étendre l'action de la commande à toute la profondeur de l'objet s'il s'agit d'un répertoire) est possible avec chmod --> auquel cas la modification des permissions opère de haut en bas : du dossier parent à tout son contenu enfant (sous-dossiers > fichiers).

  • NB. Il faut toujours faire attention avec l'option récursive --> parce que le cascadement des modifications à tous les éléments d'un ensemble hiérarchique (un dossier contenant des sous-dossiers contenant des fichiers) peut avoir quelque chose d'irréversible. Car il y a homogénéisation des permissions à toute la distribution hiérarchique > alors qu'il y avait peut-être des variantes permissives à tel ou tel nœud de cette distribution (c'est vrai en ce qui concerne l'arborescence de l'OS).
 
Dernière édition par un modérateur:
Désolé pour la réponse tardive, qui ne fait pas honneur au temps que tu as dédié à la tienne, mais dès que la semaine recommence je suis pris dans un maelström!!!

si le propriétaire (user) est différent de l'opérateur
Tu veux dire par exemple si un autre admin admin2 voulait changer chez maintrot les permission du dossier Programmation?

des variations que ne permet pas l'usage des valeurs octales, car l'expression octale est toujours "holistique" (totale)
Là, d'après ton exemple, je ne vois pas les limitations des valeurs octales par rapport aux valeurs symboliques. Il me semble qu'on arrive avec les chiffres aux mêmes combinaisons qu'avec les valeurs symboliques. En tout cas, si tu as un nombres conséquent de variable dans la fonction que tu passes, ça doit être relativement coton de se souvenir de toutes les valeurs de base (ici, 1, 2, 4...)

En résumé, impossible de changer les permission en
Bloc de code:
700 maintrot staff everyone
par l'interface graphique? En conséquence, il faut vraiment utiliser la structure des dossiers pré-installés quand tu ne veux/peux utiliser le terminal...
 
Effectivement --> si un admin nommé admin2 veut modifier les permissions du dossier Programmation d'un utilisateur maintrot > comme il n'est pas l'user propriétaire du dossier > il doit utiliser sudo en tête d'une commande. sudo (tout court) permet d'emprunter l'identité de root pour exécuter la commande qui suit --> ce qui oblige l'opérateur à s'authentifier avec son mot-de-passe de session admin pour bénéficier de cette élévation de statut.

----------

Ma remarque sur la différence à l'usage entre valeurs octales et symboliques vaut uniquement pour des cas de détails. Lorsqu'on crée un fichier quelconque --> ce fichier par défaut est dépourvu d'exécutable bit x aussi bien pour l'user > que pour le primary group > que pour le secondary group. Ce, parce que la plupart des fichiers sont des fichiers qui n'ont pas le statut d'exécutables, mais sont des fichiers-textes ouvrables en lecture et écriture par une application dédiée (comme «TextEdit» ou autre). Donc le fichier par défaut a pour autorisations : -rw-r--r-- user staff everyone (644 en valeurs octales).

À supposer que je vienne de créer un fichier avec l'extension .sh destiné à être exécutable, par contre. Il faut donc inscrire un exécutable bit au profit de l'user pour qu'il soit exécutable en pratique. Je peux alors me contenter d'une commande en aveugle :
Bloc de code:
chmod u+x [fichier]
sans du tout consulter a priori les permissions du fichier --> qui rajoute a priori l'exécutable bit pour le seul user. On peut considérer que c'est un peu plus simple et ponctuel que passer une commande :
Bloc de code:
chmod 744 [fichier]
qui oblige mentalement à se demander en quoi consistent les permissions des groupes pour ne pas les modifier : s'agit-il d'une simple permission de lecture = 4 > ou bien y a-t-il, pour le primary group du moins, un 6 préalable (= lecture + écriture) ?

----------

Une fenêtre d'information du Finder permet en principe des modifications d'autorisations (au sens où les actions graphiques dans la fenêtre déclenchent en coulisses une passation de commandes chmod ou chown adaptées). Une limitation qui apparaît tout de suite est que l'exécutable bit n'est pas manipulable de cette façon (il n'est jamais affiché comme option - rien que lecture et écriture).