Comment installer des applications sur Snow Leopard après une nouvelle réinstallation et conserver le MacBook dans un état de pré-premier démarrage?

8

Je vends mon MacBook blanc 2007.

Conformément à de nombreuses suggestions que j'ai vues en ligne, j'ai bien effacé le disque et effectué une réinstallation, mais j'ai rencontré un problème.

La machine est livrée avec OS X 10.4 Tiger, mais je l'ai depuis mis à niveau vers Leopard puis Snow Leopard.

Idéalement, je voudrais donner au nouveau propriétaire la nouvelle expérience MacBook avec le texte de bienvenue en rotation, mais je voudrais également les coller sur le dernier Snow Leopard. Le problème est que lorsque je fais une nouvelle installation de Snow Leopard, la machine n'aura pas les applications iLife (elles se trouvent sur les disques d'installation Tiger d'origine).

Existe-t-il un moyen d'obtenir les applications iLife là-bas sans avoir à configurer un compte sur la machine?

Sinon, quelle est la meilleure chose à faire? La création d'un compte est quelque chose que je préfère ne pas faire (je sais que je serais ennuyé si j'achetais un MacBook d'occasion et qu'il avait déjà un compte dessus). D'un autre côté, installer Tiger et leur donner les disques de mise à niveau semble également un peu pauvre.

Des suggestions s'il vous plait?

Merci d'avance.

Suivi:
Toutes les réponses ci-dessous étaient très informatives, clairement expliquées et probablement tout aussi efficaces. J'ai choisi celui qui convenait le mieux à ma situation, mais j'espère qu'ils seront tous utiles aux futurs lecteurs de cette question. Merci à tous ceux qui ont contribué.

Darren Greaves
la source

Réponses:

7

Deux choses - si vous ne connaissez pas les bases d'une syntaxe de shell Unix (avoir un espace au bon endroit compte, la ponctuation comme / questions) ne faites pas l'étape 2 à moins que vous ne puissiez vous permettre de tout réinstaller - la rmcommande est impitoyable - supprimez le mauvais fichier ou répertoire avec rm -rfet le mac ne démarrera pas. Vous pouvez être plus sûr en utilisant la srmcommande à la place de rmet elle déchiquettera lentement les fichiers - j'utilise srm -sz -rfau lieu de rm -rfci - dessous pour déchiqueter une fois puis zéro (ce qui finit par être deux passes puis une suppression - beaucoup sécurisé pour mes besoins et non aussi lent que l'écrasement par défaut à 35 passes avant la suppression)

  1. Assurez-vous que la personne qui achète la machine sait pourquoi elle obtient des disques de récupération. C'est vraiment bien de créer un compte de test pour exécuter toutes les mises à jour plutôt que de leur remettre le disque Snow Leopard.

  2. Configurez votre Snow Leopard Mac pour ajouter un compte administrateur nommé test sans mot de passe et supprimez tous les autres comptes à l'aide du compte de test. Redémarrez en mode mono-utilisateur en maintenant command+ set saisissez-les exactement:

    / sbin / mount -uw /
    cd / var / db
    srm .AppleSetupDone
    cd dslocal / nœuds / Par défaut / utilisateurs
    srm test.plist
    cd / Utilisateurs
    test rm -rf
    arrêt

Vous pouvez maintenant démarrer le mac pour voir la lecture du film de bienvenue et quitter l'assistant en utilisant command+ qquand il commence à poser des questions sur le nom et il s'arrêtera sans aucun compte créé mais toutes les applications préservées. Il se souviendra de vos paramètres wifi, supprimez-les avant de commencer l'étape 2 ou utilisez Ethernet / un wifi public sécurisé pour exécuter les mises à jour si vous êtes inquiet à propos de ce genre de chose.

bmike
la source
Après avoir pesé toutes les options, j'ai opté pour cette approche. Merci pour le conseil sur l'exécution de toutes les mises à jour et la présentation claire des commandes.
Darren Greaves
Excellent retour ici et avec le script plus robuste (et plus compliqué) de Hobs. Je me suis appuyé sur ces dizaines de fois pour rafraîchir une machine pour un nouvel utilisateur.
bmike
7

Vous pouvez certainement installer iLife, démarrer en mode mono-utilisateur, supprimer le compte utilisateur via ce lien superutilisateur (également ci-dessous, et le faire en mode mono-utilisateur), puis en mode mono-utilisateur, tapez simplement rm /var/db/.AppleSetupDonece qui est comme un interrupteur à bascule, indique-t-il le mac pour démarrer à partir du démarrage initial.

#!/bin/bash

# cf. http://www.macos.utah.edu/documentation/authentication/dscl.html

if [[ "$(/usr/bin/whoami)" != "root" ]]; then printf '\nMust be run as root!\n\n'; exit 1; fi

OPATH=$PATH
export PATH=/usr/bin:/usr/sbin:/bin:/sbin

OIFS=$IFS
export IFS=$' \t\n'

declare sudo=/usr/bin/sudo

printf "\e[1mDelete user account\e[m: "
read user

if [[ -z "$user" ]]; then printf '\nNo user specified! Please, try again!\n\n'; exit 1; fi

# make sure the user exists
usertest="$(/usr/bin/dscl . -search /Users name "$user" 2>/dev/null)"

if [[ -z "$usertest" ]]; then printf "\nUser does not exist: $user\n\n"; exit 1; fi 


# get user's group memberships
groups_of_user="$(/usr/bin/id -Gn $user)"

if [[ $? -eq 0 ]] && [[ -n "$(/usr/bin/dscl . -search /Groups GroupMembership "$user")" ]]; then 
   # delete the user's group memberships
   for group in $groups_of_user; do
      $sudo /usr/bin/dscl . -delete "/Groups/$group"  GroupMembership "$user"
      #$sudo /usr/sbin/dseditgroup -o edit -d "$user" -t user "$group"           
   done
fi


# delete the user's primary group
if [[ -n "$(/usr/bin/dscl . -search /Groups name "$user")" ]]; then
   $sudo /usr/sbin/dseditgroup -o delete "$user"
fi

# if the user's primary group has not been deleted ...
if [[ -n "$(/usr/bin/dscl . -search /Groups name "$user")" ]]; then
printf "
   \e[1mWarning\e[m:
   The group memberships of the user \e[1m$user\e[m have been deleted\x21
   groups_of_user: $groups_of_user
   The user's primary group \e[1m$user\e[m, however, has not been deleted\x21
   Please, try again\x21
   Exiting ...\n
"
  exit 1
fi


# find the GeneratedUID of the user and remove the password hash file 
# from /private/var/db/shadow/hash/<GeneratedUID>
# sudo ls -a /private/var/db/shadow/hash
# sudo ls -l /private/var/db/shadow/hash/<GeneratedUID>

guid="$(/usr/bin/dscl . -read "/Users/$user" GeneratedUID | /usr/bin/awk '{print $NF;}')"

if [[ -f "/private/var/db/shadow/hash/$guid" ]]; then
   $sudo /bin/rm -f /private/var/db/shadow/hash/$guid
fi


# delete the user
$sudo /usr/bin/dscl . -delete "/Users/$user"

# make a backup
if [[ -d "/Users/$user" ]]; then
   $sudo /usr/bin/ditto -rsrc -c -k "/Users/$user" "/Users/${user}-archive-$(/bin/date).zip"
fi

# remove the user's home directory
if [[ -d "/Users/$user" ]]; then
   $sudo /bin/rm -rf "/Users/$user"
fi

export IFS=$OIFS
export PATH=$OPATH

exit 0
ConstantineK
la source
Merci pour l'information - je vais essayer l'autre option suggérée mais j'essaierai ceci si celle-ci échoue.
Darren Greaves
Bonne chance! Tiens nous au courant de comment ça se passe.
ConstantineK
Lorsqu'il est démarré en mode mono-utilisateur dans Snow Leopard, ce script ne fonctionne pas pour moi - il dit que l'utilisateur n'existe pas.
Ivan X
Ensuite, pour une raison quelconque, la racine n'existe pas lors de l'exécution de / usr / bin / dscl. -search / Nom d'utilisateur "$ user" (où $ user est root). C'est assez bizarre.
ConstantineK
2

Installez Tiger comme d'habitude, puis démarrez les disques d'installation de Snow Leopard et effectuez une installation de mise à niveau sans démarrer le lecteur interne et créer un compte utilisateur.

Cajunluke
la source
Cela semble un peu plus simple que l'option de nettoyage suggérée, alors essayez-la - merci.
Darren Greaves
Il est également assez facile de supprimer un utilisateur de test. Je vais donner une réponse pour couvrir que c'est beaucoup plus simple que le script ci-dessus qui est un peu plus approfondi, mais que vérifier et laisser une copie de sauvegarde d'un dossier de départ "vide" n'est pas garanti dans la situation que vous décrivez.
bmike