do shell script et chflags

OnyX

Membre expert
Club iGen
31 Mai 2004
1 189
306
62
~/Desktop
www.titanium-software.fr
Bonjour,

Je voudrais faire un script pour masquer un volume. Je sais que ça ne fonctionnera pas avec le disque de démarrage ni avec celui utilisé par TM.

Depuis le Terminal, la commande fonctionne parfaitement :

Bloc de code:
sudo chflags hidden /Volumes/Untitled

... mais depuis un script Applescript ou depuis Xcode, ça ne fonctionne pas, sauf bizarrement si le SIP est désactivé.

Bloc de code:
do shell script "chflags hidden /Volumes/Untitled" user name adminName password adminPass with administrator privileges

adminName est le nom de l'utilisateur et adminPass est le mot de passe. Pour ça, no problem, ça fonctionne avec d'autres commandes.

Y a t-il un moyen de faire fonctionner le script sans désactiver le SIP ?

Merci.
 
Bonjour,

Après plusieurs tests avec SIP activé ou désactivé cela fonctionne avec la commande:
Bloc de code:
do shell script "echo " & "motdepasseadmin" & " | sudo -S  chflags hidden /Volumes/untitled"

La commande passe, mais pour voir le résultat il faut relancer le finder.
 
  • J’adore
Réactions: OnyX
Bonjour,

Je n'ai pas précisé, mais pour relancer le finder en applescrit, les commandes deviennent...

Bloc de code:
do shell script "echo " & "motdepasse" & " | sudo -S  chflags hidden /Volumes/untitled"
do shell script " killall Finder"

et afin de pouvoir retirer le périphérique sans problème, le rendre visible pour l'éjecter avec

Bloc de code:
do shell script "echo " & "motdepasse" & " | sudo -S  chflags nohidden /Volumes/untitled"
do shell script " killall Finder"