mobilo
Je t'ai trouvé une solution que je te soumets : elle est un peu besogneuse (car elle implique de modifier les droits sur chaque application concernée par l'exclusion en 2 commandes dans le «
Terminal» au cas par cas) > mais je te la garantis 100% opératoire.
Je te décris son contexte =>
- une application Apple native est un répertoire (dissimulé sous une icône d'objet solide) contenant une petite arborescence de sous-dossiers avec des fichiers terminaux, dont un fichier exécutable contenant le code de l'application.
- de haut en bas de cette arborescence et notamment sur le fichier exécutable de l'application, existent 3 «
accédants » (ayant droit d'accès) qui sont :
user=root (utilisateur propriétaire =
System Administrator) >
primary_group=wheel (groupe primaire = le groupe-Système
wheel dont
root seul est membre a priori) >
secondary_group=everyone (groupe secondaire = n'importe qui capable d'ouvrir une session dans l'OS :
admin, ou ayant compte
standard, ou encore simple
visiteur).
- voici les permissions de ces 3 accédants :
root=rwx (
read=lecture +
write=écriture + e
xecute=exécution de l'entrée aux répertoires ou du code d'un fichier exécutable) >
wheel=r-x (lecture > pas d'écriture > exécution) >
everyone=r-x (lecture > pas d'écriture > exécution). En valeur octale, la permission
r=4,
w=2,
x=1 > ce qui donne pour
root 4+2+1 = 7 > pour
wheel 4+0+2 = 5 > pour
everyone 4+0+1 = 5 > soit
755 root wheel everyone de haut en bas de l'application.
- qu'est-ce qui se passe quand tu doubles-cliques l'icône d'une application ? Que ce soit toi, l'
admin mobilo, ou un utilisateur
standard toto de tes élèves > aucun de vous 2 n'est l'
user:root, ni ne fait partie du
primary_group:wheel > c'est donc en tant que membre de la tribu informelle du
secondary_group:everyone que vous pouvez lancer l'exécution du fichier exécutable recelé dans le répertoire de l'application.
Maintenant : suppose que par une commande dans le «
Terminal» > je sucre les permissions d'accès du
secondary_group:everyone en les ramenant à
0 en valeur octale (ni lecture, ni écriture, ni exécution) > ce qui me donne donc des permissions récursives (de haut en bas du répertoire) =
750 sur l'application => conséquence : ni
moderno (quoique
admin), ni
toto (simple
standard) ne peuvent plus lancer l'application (car surtout la suppression de la permission exécutive
x empêche d'entrer dans le répertoire et en dernier lieu d'exécuter le code du fichier exécutable) > l'application est complètement verrouillée. Panneau (par exemple) :
Bon, mais suppose à présent que tu passes récursivement sur la même application une commande modifiant le
primary_group, en substituant à
wheel le groupe
admin ? Alors rien de changé pour
toto : il garde l'interdiction de lancer l'application > mais par contre
moderno récupère la capacité d'utiliser l'application, car s'il est toujours coincé en tant que membre du
secondary_group:everyone qui a
0 permissions > il est décoincé en tant que membre du nouveau
primary_group:admin, qui a gardé les permissions =
5 (lecture + exécution) affectées au
primary_group .
Suppose que l'application visée soit «
Mail» > il suffit de passer les 2 commandes :
Bloc de code:
sudo chmod -R 750 /Applications/Mail.app
sudo chown -R root:admin /Applications/Mail.app
ce qui n'est pas si contraignant que ça, si tu décomposes en 2 la saisie de ces commandes :
simple copier-coller (depuis un fichier «
TextEdit» où tu t'es enregistré ces départs de commande) de :
Bloc de code:
sudo chmod -R 750
sudo chown -R root:admin
chaque fois > puis saut d'un espace avec la barre d'espacement > puis glisser-déposer direct dans le «
Finder» de l'icône de l'application recelée dans le répertoire des Applications > dans le fenêtre du «
Terminal» où le chemin à l'application et son nom seront automatiquement renseignés. Reste à exécuter la commande en
sudo (ce qui implique la première fois de saisir à l'aveugle le mot-de-passe
admin).
Sinon, tu pourrais encore avoir une doublette de commandes préfabriquées où le départ de commande soit en facteur commun d'une série d'objets constituée par une liste d'applications (chemin à l'objet et nom chaque fois). Exemple si tu veux modifier les droits sur «
Mail» et «
Time Machine» et «
Messages» et «
Photo Booth» =>
Bloc de code:
sudo chmod -R 750 /Applications/Mail.app /Applications/Time\ Machine.app /Applications/Messages.app
/Applications/Photo\ Booth.app
sudo chown -R root:admin /Applications/Mail.app /Applications/Time\ Machine.app
/Applications/Messages.app /Applications/Photo\ Booth.app
étant entendu que tu passes séparément les 2 commandes.
[tu pourrais inversement avoir une doublette de commandes de réversion de ta customisation, permettant de revenir à la situation originale]
Il y aurait d'autres façons de réhabiltier
mobilo à la capacité d'exécuter les applications interdites à
toto = en passant par les
ACL qui listent des droits supplémentaires (par exemple
mobilo pourrait se remettre ainsi en capacité exécutive sans que le
primary_group: wheel soit modifié).
=> à toi de voir si ces modifications
a la mano correspondent à tes attentes. Je pense qu'avoir un fichier «
TexEdit» avec une paire de commandes
chmod et
chown sur la liste complète des applications à affecter, ainsi que la paire des commandes de réversion > fichier sur une clé USB par exemple > serait commode à l'exécution sur plusieurs bécanes > et tu aurais ainsi la liste des applications que tu as modifiées au niveau de leurs droits, avec la possibilité de renverser la vapeur...