Créer une dropbox qui gère le partage et permissions

Est-ce que tu as inscrit les commandes dans le fichier script shell : maj-droits.sh (présent dans les Scripts de la Bibliothèque de l'OS) ? - car alors le programme de ce fichier sera effectué par le daemon : com.maj-droits.plist (présent dans les LaunchDaemons de cette même Bibliothèque de l'OS) après un redémarrage qui fera prendre en compte ces instructions par le processus launchd. Cela > parce que le daemon étant un service de l'utilisateur root --> il aura les privilèges de modifier les autorisations des contenus du dossier cible.

- si par contre tu testes manuellement dans le terminal les commandes --> alors elles n'ont pas ce privilège root d'exécution. Pour un pareil test manuel > tu dois mentionner sudo en tête de chaque commande - exemple :​
Bloc de code:
sudo chown -R serveur:livre /Users/serveur/Documents/livre
sudo chmod -R 770 /Users/serveur/Documents/livre
  • ce qui te demande de t'authentifier (avec ton mot-de-passe admin d'utiilsateur serveur saisi en aveugle) à la demande de password quand tu passes ces commandes isolément dans le terminal.

En résumé : comment testes-tu l'effet des commandes ? - en manuel dans le terminal ou en éditant le fichier shell ?
 
compris pour le sudo :) j'ai effectivement testé manuellement dans le terminal

par contre je comprend pas j'ai suivi le tuto sur mon macbook air (bigsur M1 )et ça à marché du premier coup

par contre impossible de le faire fonctionné sur mon mac mini (catalina 10.15.2). ??

j'ai bien :
maj-droits.sh présent dans les Scripts de la Bibliothèque
com.maj-droits.plist présent dans les LaunchDaemons de cette même Bibliothèque

j'ai bien passé :
Bloc de code:
sudo chmod u+x /Library/Scripts/maj-droits.sh
Bloc de code:
sudo chown 0:0 /Library/LaunchDaemons/com.maj-droits.plist

j'ai bien vu Wheel sur le fichier com.maj-droits.plist

par contre comment vérifié que maj-droits.sh est bien un exécutable ?
mon mac mini n'est pas connecté à internet, j'imagine que ça change rien

je cherche les différence entre les 2... une idée ?
 
On va y arriver.

- commençons par ton MacBook Air (Big Sur) où tu dis que ça fonctionne. Peux-tu passer les 2 commandes (séparément) :​
Bloc de code:
sudo cat /Library/LaunchDaemons/com.maj-droits.plist
sudo cat /Library/Scripts/maj-droits.sh
  • qui affichent les contenus actuels du fichier de service : com.maj-droits.plist et du script programme : maj-droits.sh

Poste les 2 affichages retournés => que je voie l'état des lieux actuel.
 
Bloc de code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>com.maj-droits.app</string>
        <key>Program</key>
        <string>/Library/Scripts/maj-droits.sh</string>
        <key>RunAtLoad</key>
        <true/>
        <key>StartInterval</key>
        <string>30</string>
    </dict>
</plist>%

Bloc de code:
#!/bin/bash
/usr/sbin/chown -R Lauranne:staff /Users/Shared/libre_espace
chmod -R 770 /Users/Shared/libre_espace%
 
Ton fichier de service pointe bien au programme du fichier script.

- en ce qui concerne ce dernier : il adresse un dossier libre_espace dans Partagé > avec 2 actions : instauration récursive de Lauranne comme utilisatrice et staff comme groupe principal > et permissions de lecture / écriture : exécution (de l'entrée au répertoire) pour ces 2 à l'exclusion de everyone (groupe secondaire).​

Tu ne te sers pas de ton MacBook Air (Big Sur) pour tes partages ? Uniquement en mode expérimental ? - car on trouve une utilisatrice Lauranne absente des utilisateurs de l'autre Mac > et un dossier partagé libre_espace qui n'a plus rien à voir avec le dossier Documents de l'autre Mac. C'est donc un appareil de test du dispositif ici ?
 
!!!! Résolu !!!!
encore une fois mille merci :)

j'ai comparé sur mon mac mini le fichier : maj-droits.sh retourné le code si dessous ??? alors que depuis le TextEdit il n'y avait uniquement:
#!/bin/bash\
/usr/sbin/chown -R Serveur:staff /Users/Serveur/Documents/Livre\
chmod -R 770 /Users/Serveur/Documents/Livre

j'ai refait le fichier maj-droits.sh , rien n'y faire ça marché pas... obligé d'aller chercher le fichier sur le macbook air et la ça marche

je pense que le fichier était toujours en rtf, la conversion en shell n'a pas du fonctionné.... euh je m'avance un peu trop la , j'ai pas les compétences de macomaniac qui à su être à l'écoute , patient et disponible.... bravo à toi
----------
tu m'avais déjà dit oui mais je peux bien supprimé /usr/sbin/
pour mon info à quoi ça sert ?? /usr/sbin/


Bloc de code:
{\rtf1\ansi\ansicpg1252\cocoartf2511
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset0 Menlo-Regular;}
{\colortbl;\red255\green255\blue255;\red43\green54\blue81;}
{\*\expandedcolortbl;;\cssrgb\c21961\c27843\c39216;}
\paperw11900\paperh16840\margl1440\margr1440\vieww18660\viewh9760\viewkind0
\deftab720
\pard\pardeftab720\sl400\partightenfactor0

\f0\fs28\fsmilli14400 \cf2 \expnd0\expndtw0\kerning0
#!/bin/bash\
/usr/sbin/chown -R Serveur:staff /Users/Serveur/Documents/Livre\
chmod -R 770 /Users/Serveur/Documents/Livre
 
Tes affichages ne sont pas très lisibles.

- sur ton Mac mini : supposant que tu aies un fichier de service fonctionnel qui pointe bien au fichier programme maj-droits.sh des Scripts de la Bibliothèque de l'OS --> il faut que ce fichier soit en format texte effectivement et qu'il ait l'executable_bit : x comme permission exécutive de l'utilisateur serveur. Dernier point que tu vérifies par une commande :​
Bloc de code:
ls -al /Library/Scrips/maj-droits.sh
  • qui affiche les autorisations du fichier.
- quant à son contenu : a) si tu as 3 dossiers dans Documents = livre > depot > musique (attention à la casse ! je suppose ici que les 3 dossiers sont bien intitulés comme je les écris sans majuscule - sinon tu opères les variations correspondantes aux intitulés réels des dossiers dans tes commandes) ; b) si tu as créé 3 groupes homonymes : livre > depot > musique (attention à la casse encore) auxquels tu as associé les utilisateurs de ton choix ; c) si l'utilisateur propriétaire (=toi) a pour nomcourt serveur (attention à la casse encore !) ; d) enfin si tu souhaites que seuls les utilisateurs associés à un groupe puissent partager les contenus du dossier homonyme correspondant -->​
  • alors il faudrait que le contenu de ton fichier maj-droits.sh soit le suivant :
    Bloc de code:
    #!/bin/bash
    chown -R serveur:livre /Users/serveur/Documents/livre
    chown -R serveur:depot /Users/serveur/Documents/depot
    chown -R serveur:musique /Users/serveur/Documents/musique
    chmod -R 770 /Users/serveur/Documents/livre
    chmod -R 770 /Users/serveur/Documents/depot
    chmod -R 770 /Users/serveur/Documents/musique
    • par rapport aux exemples que tu donnais précédemment où tout se trouvait inscrit en minuscules > je ne comprends pas pourquoi des majuscules interviennent dans ton message précédent. L'intitulé d'un utilisateur (serveur) ou d'un groupe (livre > depot > musique) doit correspondre strictement à son nomcourt (nom du compte) > pas à son nom complet qui n'est qu'un intitulé cosmétique.
----------

Une commande dans le terminal commence par appeler un programme exécutable contenu dans un fichier du même nom > lequel est localisé dans l'OS dans un dossier de binaires déterminé. Les programmes chown et chmod sont localisés tous les 2 dans le répertoire (invisible) /usr > dossier sbin. Les adresses absolues à ces programmes inscrivent le chemin complet aux fichiers : /usr/sbin/chown et /usr/sbin/chmod. Mais on peut mentionner directement l'intitulé du fichier-programme : chown et chmod > dans la mesure où des préférences implicites (pour l'utilisateur serveur ou pour l'utilisateur root) adressent automatiquement les dossiers de résidence des exécutables (sbin ici).