Ah oui, tout d'abord, bonne année !
Aujourd'hui je vais vous expliquer comment installer
Big Brother client sur une machine Mac OS X.
Big Brother est un outil de monitoring freeware (mais qui existe aussi en version commerciale). Je l'utilise ou je l'ai utilisé sous
Debian GNU/Linux,
Red Hat,
PC-BSD,
FreeBSD,
Solaris,
AIX et Windows. Voyons comment l'installer sous Mac OS X:
Création d'un utilisateur bbTout d'abord je crée un utilisateur dont le login sera (par tradition) bb:
Dans "
Préférences Systèmes" allez dans "
Comptes"
(Pour créer un utilisateur vous devez avoir un compte d'administrateur)Si le cadenas est fermé, je clique dessus, et je tape mon nom et mot de passe pour le débloquer.
Cliquez sur le "+"
Nom:
Big BrotherNom abrégé:
bbPour le mot de passe, je tape quelque chose de difficile à trouver, par exemple 5dAkr42, de toutes façons je n'aurai jamais besoin de ce mot de passe (nous verrons plus loin pourquoi)
Je ne coche
pas "
Autoriser à administrer cet ordinateur"
Je clique "
Créer le compte"
Rapatriement de Big BrotherJe vais chercher Big Brother à l'adresse suivante:
http://bb4.org/dnld/bb-1.9i.tar.gzJe place ce fichier dans le répertoire /Users/bb
Je deviens l'utilisateur Big Brother. Vous me direz: "Oui mais, je ne connais pas son mot de passe !". Pas besoin, avec mon compte d'administateur il me suffit de faire:
[pierre@ibook] /Users/pierre>sudo su - bbPassword:[bb@ibook] /Users/bb>Décompression du fichier de Big BrotherEn tant que l'utilisatateur bb:
Je décompresse le .tar.gz, j'obtiens trois fichiers:
[bb@ibook] /Users/bb>tar -zxvf bb-1.9i.tar.gz BB.README.FIRSTBBSVR-bb1.9i-btf.tarBBCLT-bbc1.9i-btf.tarIl y a à ce moment trois fichiers que je peux effacer:
[bb@ibook] /Users/bb>rm bb-1.9i.tar.gz [bb@ibook] /Users/bb>rm BBSVR-bb1.9i-btf.tar [bb@ibook] /Users/bb>rm BB.README.FIRST (Le premier je viens de le décompresser, le deuxième c'est la partie serveur dont je n'ai pas du tout besoin sur Mac OS X, et le troisième, passons...)
Il me reste le fichier BBCLT-bbc1.9i-btf.tar. Je le décompose:
[bb@ibook] /Users/bb>time tar -xvf BBCLT-bbc1.9i-btf.tar bbc1.9i-btf/LICENSEbbc1.9i-btf/READMEbbc1.9i-btf/README.INSTALLbbc1.9i-btf/README.CHANGESbbc1.9i-btf/README.SECURITYbbc1.9i-btf/README.SUPPORTbbc1.9i-btf/runbb.sh.DISTbbc1.9i-btf/bin/bb-combo.shbbc1.9i-btf/bin/bb-cpu.shbbc1.9i-btf/bin/bb-disk.shbbc1.9i-btf/bin/bb-local.shbbc1.9i-btf/bin/bb-msgs.shbbc1.9i-btf/bin/bb-ping.shbbc1.9i-btf/bin/bb-procs.shbbc1.9i-btf/etc/bb-bbexttab.DISTbbc1.9i-btf/etc/bb-cputab.DISTbbc1.9i-btf/etc/bb-dftab.DISTbbc1.9i-btf/etc/bb-msgstab.DISTbbc1.9i-btf/etc/bb-proctab.DISTbbc1.9i-btf/etc/bbchkcfg.shbbc1.9i-btf/etc/bbchkcmds.shbbc1.9i-btf/etc/bbchkhosts.shbbc1.9i-btf/etc/bbdef.sh.DISTbbc1.9i-btf/etc/bbdef-client.shbbc1.9i-btf/etc/bbinc.shbbc1.9i-btf/etc/bbinc-client.shbbc1.9i-btf/etc/bbsys.shbbc1.9i-btf/etc/bbwarnsetup.cfgbbc1.9i-btf/etc/bb-hostsbbc1.9i-btf/ext/ext-protobbc1.9i-btf/install/READMEbbc1.9i-btf/install/README.SMSbbc1.9i-btf/install/bbconfigbbc1.9i-btf/install/bbmachinebbc1.9i-btf/install/bbsys.aixbbc1.9i-btf/install/bbsys.bsdibbc1.9i-btf/install/bbsys.bsdi4bbc1.9i-btf/install/bbsys.calderabbc1.9i-btf/install/bbsys.darwinbbc1.9i-btf/install/bbsys.debianbbc1.9i-btf/install/bbsys.dguxbbc1.9i-btf/install/bbsys.dynixbbc1.9i-btf/install/bbsys.fedorabbc1.9i-btf/install/bbsys.freebsdbbc1.9i-btf/install/bbsys.hpuxbbc1.9i-btf/install/bbsys.hpux9bbc1.9i-btf/install/bbsys.irixbbc1.9i-btf/install/bbsys.linuxbbc1.9i-btf/install/bbsys.mandrakebbc1.9i-btf/install/bbsys.netbsdbbc1.9i-btf/install/bbsys.openbsdbbc1.9i-btf/install/bbsys.osfbbc1.9i-btf/install/bbsys.redhatbbc1.9i-btf/install/bbsys.redhatESbbc1.9i-btf/install/bbsys.scobbc1.9i-btf/install/bbsys.sco3bbc1.9i-btf/install/bbsys.sinixbbc1.9i-btf/install/bbsys.solarisbbc1.9i-btf/install/bbsys.sunosbbc1.9i-btf/install/bbsys.susebbc1.9i-btf/install/bbsys.ultrixbbc1.9i-btf/install/bbsys.unixwarebbc1.9i-btf/install/bbsys.unixware7bbc1.9i-btf/tmp/.helloworldbbc1.9i-btf/src/READMEbbc1.9i-btf/src/bb.cbbc1.9i-btf/src/bb.hbbc1.9i-btf/src/bbrun.cbbc1.9i-btf/src/bbsend.cbbc1.9i-btf/src/bbstat.cbbc1.9i-btf/src/minimake/Makefilebbc1.9i-btf/src/minimake/READMEbbc1.9i-btf/src/minimake/bbmachinebbc1.9i-btf/src/minimake/genbbdefsbbc1.9i-btf/src/minimake/genmakebbc1.9i-btf/src/minimake/getidbbc1.9i-btf/src/minimake/clientbbc1.9i-btf/src/touchtime.cbbc1.9i-btf/src/utils.cbbc1.9i-btf/src/getipaddr.cbbc1.9i-btf/src/MakefileJe renomme le répertoire bbc1.9i-btf en bbclient:
[bb@ibook] /Users/bb>mv bbc1.9i-btf bbclientJe me place dans le répertoire bbclient:
[bb@ibook] /Users/bb>cd bbclient[bb@ibook] /Users/bb/bbclient>Si vous êtes curieux et/ou si vous avez le temps, lisez le fichier README.INSTALL qui vous expliquera en détail l'installation. Mais bon comme j'explique tout ici vous n'avez pas vraiment besoin de
RTFM :)
Compilation de Big BrotherAllons-y pour compiler le client Big Brother:
D'abord, configurer les sources pour Mac OS X (Darwin):
[bb@ibook] /Users/bb/bbclient/install>./bbconfig darwin(Lisez et acceptez la licence)
Je répond à une première question:
Big Brother needs it's own user id. If your BB user doesn't exist, you'll have to create it then re-run bbconfig.What will be the user ID for BB [bb]:Je tape ENTER
---> BB will only run from user 'bb'Making sure BBHOME is writable...---> OK, /Users/bb/bbclient is fine...Je répond à une deuxième question:
When you set up your machines, you should use Fully QualifiedDomain names, this means you use the whole name, like www.bb4.com,instead of just 'www'. This is recommended.Use FQDN (y/n): [y]Je réponds n pour non
Ca y est, je peux compiler:
[bb@ibook] /Users/bb>cd /Users/bb/bbclient/src[bb@ibook] /Users/bb/bbclient/src>makeMaking darwin makefileBBOS="darwin" CC="gcc" CFLAGS=" -DZOMBIE -Ddarwin -DGETTIMEOFDAY -DREGEXEC -O" make -e bballgcc -DZOMBIE -Ddarwin -DGETTIMEOFDAY -DREGEXEC -O `./minimake/genbbdefs` -g -o bb.o -c bb.cgcc -DZOMBIE -Ddarwin -DGETTIMEOFDAY -DREGEXEC -O `./minimake/genbbdefs` -g -o bbsend.o -c bbsend.cgcc -DZOMBIE -Ddarwin -DGETTIMEOFDAY -DREGEXEC -O `./minimake/genbbdefs` -g -o utils.o -c utils.cgcc -DZOMBIE -Ddarwin -DGETTIMEOFDAY -DREGEXEC -O `./minimake/genbbdefs` -g -o ../bin.`./minimake/bbmachine OS`/bb bb.o bbsend.o utils.ogcc -DZOMBIE -Ddarwin -DGETTIMEOFDAY -DREGEXEC -O `./minimake/genbbdefs` -g -o touchtime.o -c touchtime.cgcc -DZOMBIE -Ddarwin -DGETTIMEOFDAY -DREGEXEC -O `./minimake/genbbdefs` -g -o ../bin.`./minimake/bbmachine OS`/touchtime touchtime.ogcc -DZOMBIE -Ddarwin -DGETTIMEOFDAY -DREGEXEC -O `./minimake/genbbdefs` -g -o getipaddr.o -c getipaddr.cgcc -DZOMBIE -Ddarwin -DGETTIMEOFDAY -DREGEXEC -O `./minimake/genbbdefs` -g -o ../bin.`./minimake/bbmachine OS`/getipaddr getipaddr.o utils.ogcc -DZOMBIE -Ddarwin -DGETTIMEOFDAY -DREGEXEC -O `./minimake/genbbdefs` -g -o bbrun.o -c bbrun.cgcc -DZOMBIE -Ddarwin -DGETTIMEOFDAY -DREGEXEC -O `./minimake/genbbdefs` -g -o ../bin.`./minimake/bbmachine OS`/bbrun bbrun.o utils.o[bb@ibook] /Users/bb/bbclient/src>make install(Ah oui, évidemment, à cette étape le script d'installation fait appel à
gcc, il faut donc que vous ayez installé
XCode)
La compilation est terminée, j'approche du but.
Création du fichier de configuration de Big BrotherIl me faut maintenant créer le fichier de configuration. Allons dans le répertoire adéquat:
[bb@ibook] /Users/bb>cd bbclient/etcJe regarde le fichier bb-hosts livré par défaut:
[bb@ibook] /Users/bb/bbclient/etc>cat bb-hostsJe renomme le fichier livré par défaut:
[bb@ibook] /Users/bb/bbclient/etc>mv bb-hosts bb-hosts.DISTJe crée mon fichier bb-hosts et j'y écris simplement deux lignes:
10.42.10.1 venus # BBPAGER BBNET BBDISPLAY10.42.10.28 ibookIci 10.42.10.28 ibook est l'adresse IP et le nom de ma machine client Mac OS X, et 10.42.10.1 venus l'adresse IP et le nom de ma machine serveur Big Brother. (Pour connaître l'adresse IP de votre machine, tapez
ifconfig en0 ou allez dans Préférences Systèmes > Réseau). Evidemment cela ne fonctionnera correctement que si votre machine Mac OS X a une adresse IP fixe...
Sur mon serveur Big Brother, j'ajoute une ligne du genre:10.42.10.28 ibook
(Ou si la machine Mac OS X n'est pas allumée en permanence:)10.42.10.28 ibook #nopingPremier lancement du clientJe peux enfin lancer le client:
[bb@ibook] /Users/bb>cd /Users/bb/bbclient/[bb@ibook] /Users/bb/bbclient>./runbb.sh startStarting Big Brother Starting Local tests (bb-local)...Big Brother 1.9i started[bb@ibook] /Users/bb/bbclient>Ca y est, ca tourne !
Je regarde maintenant mon serveur Big Brother et j'y vois des boules vertes !
Si vous voyez des boules rouges, il peut y avoir plusieurs problèmes:Premier problème possible:La boule "msgs" est rouge, et quand je clique dessus je vois "
/var/log/system.log is unreadable". Comme le message le dit, l'utilisateur
bb ne peut pas ouvrir le fichier
/var/log/system.log en lecture. Voyons les permissions sur ce fichier:
-rw-r----- 1 root admin 478K Jan 1 15:10 /var/log/system.logDès lors, pour que l'utilisateur bb puisse lire ce fichier, deux solutions:
a) Changer les permissions du fichier en . Mais alors, il est world-readable, ce qui peut être considéré comme un "problème de sécurité" par les Unix gurus.
b) Mettre l'utilisateur bb dans le groupe adm. A nouveau, ceci peut être considéré comme un "problème de sécurité" par les Unix gurus.
Deuxième problème possible:La boule "
disk" est rouge, et quand je clique dessus je vois
"red Mon Dec 31 16:00:00 CET 2007 - Filesystem of /Users/bb/bbclient/tmp is FULL" J'ai constaté que ce problème survient avec
Léopard, mais pas avec
Tiger. Il est dû à une nouvelle syntaxe de la commande sort sous
Mac OS X Léopard.
La solution à ce problème m'a été donnée par Martin Costabel (grand merci à lui). Il suffit d'éditer le fichier /Users/bb/bbclient/bin/bb-disk.sh . D'abord, je renomme l'original et je crée une copie:
[bb@ibook] /Users/bb>cd bbclient/bin[bb@ibook] /Users/bb/bbclient/bin> mv bb-disk.sh bb-disk.sh.DIST[bb@ibook] /Users/bb/bbclient/bin> cp bb-disk.sh.DIST bb-disk.shEnsuite j'édite bb-disk.sh: je remplace
\"+${DFSORT}\" par
\"-k$(($DFSORT+1))\" (Attention: Il faut le faire deux fois à deux endroits différents dans le fichier)
Pour que le client Big Brother démarre automatiquementAvec ceci, il faut à chaque démarrage de la machine Mac OS X, aller démarrer le client Big Brother en effectuant des commandes du genre:
[pierre@ibook] /Users/pierre> sudo su - bb[bb@ibook] /Users/bb> ./bbclient/runbb.sh start... ce qui est assez pénible
Je vous conseille donc fortement de mettre le client Big Brother en "démarrage automatique". Pour cela, devenez l'utilisateur bb (par
sudo su - bb par exemple), et ensuite:
[bb@ibook] /Users/bb>crontab -eDans le crontab de bb, une seule ligne à écrire:
@reboot /Users/bb/bbclient/runbb.sh startEventuellement, redémarrez pour vous assurer que le client Big Brother démarre bien tout seul
Ajustement cosmétiqueComme j'ai créé un utilisateur bb, il apparaît évidemment dans l'écran de connexion et dans la "permutation rapide d'utilisateur". Cela vous ennuie ? J'ai la solution:
[pierre@ibook] /Users/pierre> sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add bbPour les "bêtes de Mac OS X", enfin je veux dire: les utilisateurs avancés Il est possible de créer l'utilisateur bb, et de le mettre dans le bon groupe, tout ça en ligne de commande. Par exemple:
Créer l'utilisateur bb:
sudo dscl . -create /Users/bbsudo dscl . -create /Users/bb UserShell /bin/bashsudo dscl . -create /Users/bb RealName "Big Brother"sudo dscl . -create /Users/bb UniqueID xxxsudo dscl . -create /Users/bb PrimaryGroupID 20sudo dscl . -create /Users/bb NFSHomeDirectory /Users/bb
sudo mkdir /Users/bb
sudo chgrp staff /Users/bb
sudo chown bb /Users/bb(où xxx est le UID, faites bien attention d'en choisir un qui n'existe pas déjà, pour cela faites
sudo dscl . list /users UniqueID pour voir ceux qui sont déjà utilisés. Dans mon cas l'
UniqueID est 503. Le
PrimaryGroupID 20 correspond à
staff, en tous cas sous Tiger et Léopard)
Ceci a l'avantage de pouvoir choisir avec précision l'UID et le GID. De plus, les répertoires "qui ne servent à rien" pour l'utilisateur bb: Library, Pictures, Desktop, Movies, Public, Documents, Music, Sites ne sont pas créés.
(N'oubliez pas de mettre un mot de passe en faisant
sudo passwd bb)
... et voilà, on y est arrivé !