lalahop
Categorie: Administration système

Chez les Moldus

Récemment, j'ai dépanné des Moldus de l'informatique. J'ai du :

  • Faire reconnaitre une carte PCI Wifi achetée d'occasion par un Windows XP. Rien de bien sorcier ... sauf quand la carte en question n'a pas été vendue avec ses pilotes et que le nouveau propriétaire ignore sa marque/son modèle. Quand en plus la carte prend en charge uniquement le WEP, on se retrouve à expliquer pourquoi ce n'est pas une bonne idée de remplacer une clé USB Wifi qui gère le WPA2 par une carte PCI Wifi qui ne gère que le WEP et les conséquences que cela a sur la sécurité du réseau domestique. Mais, en étant un tout petit peu pédagogue, on s'en sort :).
  • Faire en sorte que le lecteur/graveur CD/DVD reprenne du service. Là aussi, rien de bien compliqué : le lecteur/graveur fonctionnait au boot de l'ordinateur et le gestionnaire des périphériques indiquait un code d'erreur 19 "Windows ne peut pas démarrer ce périphérique matériel car ses informations de configuration (dans le registre) sont incomplètes ou endommagées. (Code 19)". Il suffit ensuite de suivre l'aide de Microsoft et notamment la méthode n°1. Toutefois, je n'ai pas supprimé la clé mais toutes les valeurs s'y trouvant.
  • Faire (encore) un peu de pédagogie et expliquer pourquoi ce n'est pas une bonne idée de fusionner les deux partitions qui étaient crées à l'origine sur le disque dur mais, au contraire, s'en servir pour séparer documents et système d'exploitation.

Mais surtout, et c'est le point principal de ce billet : comment définir une musique (au format MP3), transférée via Bluetooh, en tant que sonnerie sur un Samsung Galaxy S. Par défaut, on peut choisir la sonnerie parmi une liste restreinte. L'appareil est évidemment équipé avec un Android "untouched"/ "unrooted", si j'ose dire.

Comme à chaque fois que je ne sais pas, je me retourne vers le nain Ternet et son ami Google. J'apprend que, contrairement à ce qu'on m'avait dit, il ne faut pas un ordinateur pour transférer la sonnerie sur le mobile. Je sélectionne un tutoriel qui explique tout cela parmi tans d'autres : Mettre un MP3 en sonnerie/alarme/notification.

Il suffit de créer les dossiers depuis l'application de gestion des fichiers du téléphone puis de déplacer la musique voulue du répertoire "bluetooh" vers le répertoire créé. Il faut néanmoins adapter la dernière partie de ce tutoriel puisque les menus ne sont pas identiques entre un HTC et un Samsung. De plus, les sonneries peuvent faire plus de 30 secondes sans problème.

Quelques commandes GNU/Linux

Table des matières

Un mois que je n'ai rien posté ... Un mois de folie pendant lequel je n'ai eu que de rares moments à moi. Il est temps de se mettre à jour. Et en parlant de mise à jour : j'ai mis à jour ce blog, sans accrocs (ou en tout cas ils ne sont pas encore visibles).

Maintenant, je souhaite revenir sur des commandes disponibles sous GNU/Linux qui m'ont été utiles ces derniers temps. Ce ne sont pas des commandes inédites, elles sont facilement trouvables sur le web mais les mettre une fois de plus ne fait pas de mal et me cela me permettra de les retrouver facilement si besoin est.

Monter/démonter une iso

Pas besoin d'un logiciel tiers comme Deamon Tools, un simple montage suffit.

sudo mkdir /media/iso
sudo mount -o loop /chemin/vers/iso /media/iso

Pour démonter l'iso après usage :

sudo umount /media/iso

Et si on ne compte pas se resservir du dossier /media/iso pour remonter une autre iso :

sudo rmdir /media/iso

Copier le contenu d'un CD/DVD (non protégé) dans un fichier iso

Pour un CD :

dd if=/dev/cdrom of=/chemin/vers/iso/a/creer.iso

Pour un DVD :

dd if=/dev/dvd of=/chemin/vers/iso/a/creer.iso

ÉDIT 27/02/2011 18h45 :
Pour les DVD du commerce, qui sont protégés, dd ne suffit pas. Voir : Copier un DVD du commerce (protégé).

Avant de retirer une disquette

Après avoir écrit sur une disquette, pensez à la démonter avant de la retirer du lecteur. Si vous ne le faites pas, vous n'êtes pas sûr que l'écriture a bien eu lieu et vous pouvez donc perdre des données.

umount /dev/floppy

Créer une archive au format 7z

Il faut avoir installé le paquet p7zip-full. Le paquet p7zip ne permet pas de créer une archive, juste de la décompresser.

7z a -mx=9 nom_de_archive.7z dossier_a_compresser/

Le paramètre "x" permet de définir le taux de compression sur une échelle de 0 à 9. 0 désignant aucune compression et 9 désignant la compression maximale.

Décompresser une archive au format 7z en ligne de commande

Au cas où vous n'auriez pas trouvé depuis tout ce temps 😉 :

7z x archive.7z

Effacer un DVD RW

J'ai désinstallé k3b et Brasero depuis longtemps à cause de leur instabilité. Xfburn me dit que le DVD est déjà vierge. La commande growisofs ne m'apporte pas plus satisfaction. Finalement, la commande qui a résolu mon problème :

cdrdao blank --speed 2

Obtenir des informations sur une vidéo

Si vous voulez connaitre des informations de base (container, codecs, nombres de flux, résolution, aspect, fps, etc.) sur une vidéo, vous pouvez utiliser ffmpeg de la manière suivante :

ffmpeg -i video.mkv

Vous pouvez aussi utiliser mplayer, et ça, je ne le savais pas avant d'être tombé dessus au détour d'une recherche.

Pour avoir un peu plus d'informations (bit rate du/des flux, paramètres d'encodage, informations très détaillées sur les flux, etc. ), je reste fan de mediainfo. Même si je trouve la CLI bien plus lisible, sachez qu'une GUI est disponible (mediainfo-gui). Voici un ppa pour installer facilement mediainfo/mediainfo-gui avec apt-get.

Réaliser des traitements par lot sur des images

Pour cela, il faut utiliser ImageMagick. Voici 1 ligne de commandes qui permet de convertir les images jpeg du répertoire courant (et de ses sous-dossiers) en images png :

find ./ -name "*.jpg" -exec bash -c "convert -quality 100 {} {}.png && rename 's/\.jpg.png$/\.png/' {}.png && rm {}" \;

Find trouve les fichiers qui ont l'extension .jpg. Pour chaque fichier trouvé, find lance la commande qui se trouve après "-exec" et avant "\;".

Bash permet de lancer un nouveau shell. L'option -c permet de passer les commandes à exécuter, en tant que paramètre, sous la forme d'une chaine de caractères.

Convert {} {}.png créer une image png a partir de l'image jpg. Cette nouvelle image porte le nom de l'ancienne suivie de ".png". L'option -quality 100 permet de spécifier le taux de compression sur une échelle allant de 0 à 100 où 100 indique le plus fort taux de compression.

Rename 's/\.jpg.png$/\.png/' {}.png change l'extension .jpg.png du fichier en .png.

rm {} supprime l'image original (celle au format jpeg).

ÉDIT 03/07/2011 23h55 :
La commande ci-dessus peut aussi s'écrire :

find ./ -name "*.jpg" -exec convert -quality 100 {} {}.png \; -exec rename 's/\.jpg.png$/\.png/' {}.png \; -exec rm {} \;

A vous d'adapter ces lignes pour faire d'autres transformations par lot sur vos images grâce à ImageMagick.

Générer un mot de passe aléatoire en ligne de commande

Je ne souhaite pas utiliser un logiciel supplémentaire tel pwgen que je connais déjà. Tout est dit sur ce site : Générer des mots de passe aléatoires sous Linux - Tux-planet.

Découper un fichier

La méthode classique

7z a -mx=0 -v500m archive.7z fichier_à_découper

"-mx = 0" permet de définir un taux de compression minimale. A vous d'adapter ce taux en fonction du fichier que vous voulez découper : si vous découpez une vidéo déjà compressée grâce à théora/vorbis ou VP8/vorbis (;)), alors, la compresser ne servira à rien (le temps de compression/décompression sera disproportionné par rapport au gain obtenu en terme de place). A l'inverse, si vous découper une archive tar contenant des fichiers php/html, alors vous avez tout intérêt à compresser les fichiers pendant le découpage.

"-v" permet de définir la taille de chaque morceau du fichier. "b" permet de définir la taille du morceau en octets, "k" en kilos, "m" en mégas, "g" en gigas.

Pour recomposer le fichier, là encore, c'est du classique, on demande la décompression du premier morceau et 7z s'occupe du reste :

7z x archive.7z.001

La méthode split

split -d -b500m fichier_a_découper nom_des_morceaux.

Il y a bien un "." à la fin de la commande.
"-d" permet de dire que le compteur de fichiers sera numérique au lieu d'alphabétique, "-b" permet de définir la taille des morceaux . A ce sujet, je vous copie un morceau du man :

SIZE may be (or may be an integer optionally followed by) one of following: KB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y.

Pour recomposer le fichier :
Sous UNIX :

cat nom_des_morceaux.* > fichier_final

Sous Windows :

type nom_des_morceaux.* > fichier_final

Split ou 7z ?

En utilisant un taux de compression 0 avec 7z, split et 7z sont à égalité lors du temps mis pour découper un même fichier, à plus ou moins une seconde d'écart. Ce qui fera la différence entre l'usage de l'un ou de l'autre, c'est de savoir si vous avez besoin de compresser le fichier, comme évoqué plus haut.

Voici le blog qui m'a inspiré pour split : Le blog du Gentil Démon.

Détacher un programme d'une console

J'utilisais la commande nohup jusqu'à ce que je lise ceci : [resolu] Détacher une appli de la console après l'avoir lancée sur ubuntu-fr.org.

Après, cela dépend de l'usage : si faire un commande & exit sur un shell local fonctionne très bien si l'on ne souhaite pas réutiliser le shell pour une autre commande, faire cette commande sur un shell distant (via SSH par exemple) provoquera la fermeture du shell. Dans ce cas, mieux vaut un nohup commande &.

Quand vous avez un problème d'affichage (KDE)

Quand des artefacts graphiques apparaissent sur votre écran ou quand KDE semble figé à l'ouverture de votre session, il suffit d'ouvrir un terminal (ctrl + alt + f1 par exemple) et de balancer un :

sudo service kdm restart

Vous retournerez sur l'écran de connexion et tout vos programmes graphiques seront perdus mais les problèmes graphiques cesseront.

Supprimer un dépôt

Ubuntu-Tweak et ppa-purge permettent de nettoyer les dépôts utilisés. Mais parfois, ils échouent.

Dans ce cas, il suffit de rechercher un(des) fichier(s) portant le nom du dépôt que vous voulez supprimer, dans le dossier /etc/apt/sources.list.d puis de supprimer le fichier concerné. Il faut ensuite chercher à savoir si le dépôt a une clé GPG. Pour cela, on utilise la commande apt-key list, en root. Si le dépôt a une clé, on la supprime : apt-key del clé en root. Enfin, on met à jour la liste des paquets avec apt-get update.

Par exemple, pour supprimer le dépôt medibuntu à la main :

~$ ls /etc/apt/sources.list.d/medibuntu*
medibuntu.list
medibuntu.list.save
~$ sudo rm /etc/apt/sources.list.d/medibuntu.list /etc/apt/sources.list.d/medibuntu.list.save
~$ sudo apt-key list

[...]
pub   1024D/0C5A2783 2006-11-23
uid                  Medibuntu Packaging Team <admin@lists.medibuntu.org>
uid                  The Medibuntu Team <medibuntu@sos-sts.com>
sub   2048g/16C7105A 2006-11-23

~$ sudo apt-key del 0C5A2783
OK
~$ sudo apt-get update

Kubuntu 10.10

Table des matières

Dès aujourd'hui, j'ai mis à niveau la version de Kubuntu qui était installé sur mon ordinateur portable.

Pour réaliser cette mise à niveau, j'ai choisis la méthode "alternate CD + apt-get" :

  1. Télécharger le CD alternate de Kubuntu.
  2. Monter l'image :
    ~$ sudo mkdir /media/iso
    ~$ sudo mount -o loop -t iso9660 ./kubuntu-10.10-alternate-amd64.iso /media/iso
  3. Lancer l'installation :
    ~$ sudo /media/iso/cdromupgrade
  4. Attendre un peu car l'assistant pose quelques questions (même après avoir validé les logiciels à supprimer).
  5. Laisser l'installation se faire toute seule et redémarrer.
  6. Au redémarrage, on note que, par défaut, si on ne touche rien pendant le timeout de GRUB, on boot sur le noyau 2.6.32-25. Demandons à booter sur le 2.6.35-22.
  7. Après avoir saisi mon login, l'écran devient noir et le reste. Ne paniquons pas, passons en mode console (ctrl+alt+F1), authentifions-nous et tapons :
    ~$ sudo /etc/init.d/kdm restart
  8. Afin de finir de mettre à jour tous les paquets, réactivons les dépôts alternatifs qui ont été désinstallés durant l'installation (j'utilise ubuntu-tweak) et lançons :
    ~$ sudo apt-get update && sudo apt-get dist-upgrade

Et voila : la mise à niveau est finie. On n'oubliera pas de désactiver les effets visuels depuis "Configuration du sytème" parce que là c'est un peu "too much" quand même.

Le cas Wireshark

J'ai cependant remarqué que Wireshark avait été désinstallé. Voici, vite fait, comment le réinstaller même si il n'y a rien de compliqué :

~$ sudo apt-get install wireshark

Il faut rajouter manuellement (via l'éditeur de menu) le raccourci dans le menu K. Je n'ai pas compris pourquoi Wireshark (et c'est le seul logiciel concerné par ce "problème") n'a pas été automatiquement ajouté cette fois-ci.

Pour pouvoir voir les interfaces réseau et capturer le trafic sans utiliser le compte root sur Wireshark (ce qui reviendrait à donner des droits supplémentaires à un programme qui n'en a pas directement besoin), il suffit d'activer le setuid bit sur le programme qui est chargé de la capture :

~$ chmod u+s /usr/bin/dumpcap

Désinstaller l'ancien noyau

~$ sudo apt-get remove linux-image-2.6.32-25-generic

Vous pouvez aussi désinstaller les "vieux" headers 2.6.32-25.

Créer un compte utilisateur sans droits sur OpenWRT

À quoi peut bien servir la création d'un compte utilisateur sans droits mais avec un mot de passe sur OpenWRT ? Imaginons par exemple que vous utilisez votre routeur afin de réaliser des tunnels SSH ou plus si affinités : vous restez longtemps connecté à votre routeur, tout en étant authentifié avec le compte root, sans avoir besoin des droits que vous octroie ce compte. Côté sécurité, même Microsoft fais mieux. 😉

Cela peut aussi servir pour distribuer quelques comptes à des amis afin qu'ils puissent profiter des joies du port forwarding et du contournement d'un pare-feu sans tout casser.

Maintenant que je vous ai convaincus avec ces arguments subtils et percutants 😉 , voici la marche à suivre pour un compte nommé "guest" :

Créons un "home directory" pour ce compte (ça fais moins porchou que de lui donner /var) :

~# mkdir -p /home/guest

Éditons le fichier qui contient les utilisateurs autorisés à ce connecter au système :

vi /etc/passwd

A la fin du fichier, rajoutez une ligne comme celle-ci :

guest:*:65533:65533:guest:/home/guest:/bin/ash

Vérifiez que l'UID n'existe pas déjà. Changez le shell d'arrivé si besoin.

Créons un groupe pour cet utilisateur. Oui, on pourrait utiliser le group "nogroup/daemon" mais il vaut mieux créer un nouveau groupe afin de bien séparés les privilèges (droits d'accès à certains fichiers, etc.).

vi /etc/group

A la fin du fichier, rajoutez une ligne comme celle-ci :

guestg:x:65533:

Le g à la fin de guest signifie "group", ce n'est pas une coquille, c'est pour différencier le groupe du login. Vérifiez que le GID n'existe pas déjà et qu'il correspond au GID que vous avez donné au compte utilisateur.

Maintenant donnons un mot de passe à ce compte :

~# passwd guest

Donnons l'autorisation au compte guest d'écrire dans son home directory :

~# chown -R guest:guestg /home/guest

C'est terminé.

Pour vous connecter à votre routeur via SSH :

  • Si vous voulu effectuer une tâche de maintenance :
    ssh root@ip-du-routeur
  • Si vous n'avez pas besoin d'effectuer une tâche de maintenance (exemple du tunnel SSH) :
    ssh guest@ip-du-routeur

Si vous voulez utiliser l'authentification par clé publique avec ce compte utilisateur, sa clé publique ne devra pas être mise dans /etc/dropbear/authorized_keys mais dans /home/guest/.ssh/authorized_keys .

4 astuces pour Windows

Table des matières

Dans ce billet, nous allons revenir sur 4 astuces bien connues concernant Windows.

  • La première vous permettra de faire un sorte qu'un compte utilisateur n'ai plus les droits d'administration alors que le panneau de configuration vous refuse cette modification.
  • La deuxième astuce vous permettra de cacher un compte utilisateur sur l'écran de connexion.
  • La troisième astuce vous permettra de désactiver certains partages administratifs de Windows.
  • Enfin, la dernière astuce vous permettra de faire en sorte que votre PC ne s'annonce plus sur le réseau via les protocoles Netbios/SMB.

Note : j'ai testé ces astuces uniquement sur Windows 7. Mais elles doivent fonctionner à coup sûr sous Vista et certainement sous XP.

Enlever les droits "administrateur" à un compte utilisateur

Parfois, vous voulez qu'un compte utilisateur n'ait plus les droits d'administration. Par exemple : si vous utilisez le compte Administrateur pour la maintenance, vous n'avez pas besoin que votre autre compte ait les droits d'administration. Pourtant Windows vous refuse cette suppression de droits sous prétexte qu'il faut au moins un compte avec les droits administrateur ... Ce qui est déjà le cas. Pour outrepasser ceci, il suffit d'utiliser la commande "net" et son argument "localgroup". Ouvrez une invite de commande et tapez :

net localgroup Administrateurs GuiGui /delete

En replaçant GuiGui par le nom du compte à destituer. Puis tapez :

net localgroup Utilisateurs GuiGui /add

Note : si vous utilisez un domaine, utilisez la commande "net group".

Cacher un compte utilisateur sur l'écran de connexion

Puisque je n'ai pas trouvé cette astuce tout seul ou via le bouche-à-oreille, contrairement à la première astuce, et plutôt que de répéter ce qui a déjà été dit, je préfère vous donner le lien qui m'a aidé quand j'ai moi-même voulu réaliser cette opération : Masquer un compte utilisateur dans Windows 7 ou Vista.

Désactiver les partages administratifs de Windows

Là aussi, tout ce résume en un lien : Partage administratif.

Note : contrairement à ce qui se dit parfois sur la toile, les partages administratifs n'ont pas disparus ou n'ont pas été désactivés par défaut dans Windows 7. En tout cas pas chez moi ...

Empêcher Windows de s'annoncer sur le réseau via les protocoles Netbios et SMB

Qui n'a jamais vu, lors d'une capture des flux réseau, les nombreux messages de diffusion (broadcast) envoyés par une machine Windows pour s'enregistrer sur d'autres machines Windows via les protocoles Netbios et SMB ?

Pourquoi vouloir empêcher cela ? Pour avoir moins de trafic réseau, pour ne pas encombrer le réseau sur lequel on vous invite (cas d'un ordinateur portable) et car cela n'empêche pas le transfert de fichier via le protocole SMB de fonctionner : il suffit de connaitre le nom de la machine et tout fonctionne comme d'habitude.

Pour faire cela, il suffit d'aller dans le registre, de naviguer jusqu'à HKEY_LOCAL_MACHINE\system\currentcontrolset\services\lanmanserver\parameters puis de créer ou modifier les valeurs dword "hidden" et "Lmannounce" et de leur donner respectivement la valeur 1 et 0.

Note : tout comme la désactivation des partages administratifs, cette manipulation nécessite un redémarrage du système pour prendre effet.

Le .reg de la fin

Pour la désactivation des partages administratifs et de l'annonce sur le réseau, je m'étais fait un fichier .reg que je pouvais facilement intégrer à mes installations allégées et automatisées de Windows 7 grâce au logiciel RT Se7en Lite. Cela permet de désactiver ces deux "features" dès l'installation et ainsi de ne pas oublier de le faire. Le voici pour ceux que ça peut intéresser :

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters] 
"Lmannounce" = dword:00000000
"Hidden" = dword:00000001
"AutoShareWks" = dword:00000000