Installer Java sous Linux et l’ajouter au Path de l’interface graphique

Je suis un utilisateur de Java depuis quelques années maintenant et malheureusement, depuis le passage à la version 7, il n’y a plus d’installateur automatique pour les versions autres que RPM (gageons que ce soit temporaire). Voici donc la procédure pour avoir un Java fonctionnel et facilement upgradable par la suite.

Tout d’abord, il faut commencer par télécharger le JDK et le JRE qui nous intéresse sur la page officielle de Java. Il faut bien sûr prendre la version tar.gz et pour ma part je prend la version 64bits. Je me retrouve donc avec les fichiers :

jre-7u7-linux-x64.tar.gz
jdk-7u7-linux-x64.tar.gz

Je créé ensuite un dossier java dans le dossier /opt/ puis y déplace le JDK et le JRE à installer à l’aide des commandes :

mkdir /opt/java
mv jre-7u7-linux-x64.tar.gz jdk-7u7-linux-x64.tar.gz /opt/java/

On décompresse ensuite les deux archives puis on les renomme respectivement en jre et en jdk :

tar -xzf jdk-7u7-linux-x64.tar.gz
tar -xzf jre-7u7-linux-x64.tar.gz
mv  jdk1.7.0_07 jdk
mv  jre1.7.0_07 jre

Il ne reste plus qu’à enlever les deux fichiers d’archives et on a les fichiers d’exécution de Java à leurs places définitives. L’avantage de cette mise en place est qu’il n’y aura qu’à remplacer les fichiers à l’intérieur des dossiers jdk et jre par les nouvelles version de Java. Ce sera ainsi le seul changement qu’il y aura à apporter par la suite pour mettre à jour sa version.

Maintenant qu’on a des emplacements de Java suffisamment génériques pour résister aux changements de versions, il faut les inclure au PATH. Il y a plusieurs solutions en fonction de ce que l’on désire mettre en place. Pour ma part, je voulais inclure Java partout (sous entendu y compris dans l’interface graphique) afin que les programmes qui en ont besoin le trouve facilement. De plus, ceci me permet de lancer facilement mes programmes sans mettre la direction absolue de mon installation.

Je vais maintenant détailler différentes possibilités d’installation :

  • La première permet d’ajouter Java au PATH console d’un seul utilisateur. Il suffit pour ce faire de rajouter les lignes :
export PATH=$PATH:/opt/java/jdk/bin:/opt/java/jre/bin
export JAVA_HOME=/opt/java/jre/bin

à la fin du fichier .bashrc de l’utilisateur.

  • La deuxième permet d’ajouter Java au PATH console de tous les utilisateurs du système. Il suffit de rajouter les même lignes qu’au dessus mais dans le fichier : /etc/bash.bashrc
  • La dernière, et celle que j’ai utilisé, permet de modifier le PATH de tout le système. Elle consiste à modifier le fichier /etc/environment. On modifie la ligne PATH et on rajoute une variable JAVA_HOME au fichier de cette manière :

PATH= »/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/java/jdk/bin:/opt/java/jre/bin »
JAVA_HOME= »/opt/java/jre/bin »

De nombreux détails sur les variables d’environnements et leurs utilisations sont présentes sur les pages officielles d’Ubuntu.

Après un simple redémarrage de l’ordinateur, les configurations seront prises en compte. Nous voici donc avec un Java facilement upgradable utilisable partout.

Créer un lanceur d’application à la main et l’ajouter au menu

Afin de pouvoir lancer facilement mon programme Just Wake Up, j’ai voulu créer un lanceur dans ma lens d’applications Unity. Cependant, autant il était très simple de mettre en place ce genre de solutions avec Gnome 2, autant rien de tel n’existe encore sous Unity. Ainsi, il m’a fallut créer un lanceur à la main. Les lanceurs sont basés sur la Desktop Entry Specification.

Voici le script de lancement que j’utilise avec Just Wake Up :

#!/usr/bin/env xdg-open
[Desktop Entry]
Name=Just Wake Up
Comment=Fancy Mornings, Just Wake Up
Exec=java -jar /opt/justwakeup/JustWakeUp.jar
Terminal=false
Icon=/opt/justwakeup/logo.png
Type=Application
Categories=Utility

Il suffit d’enregistrer ceci dans un fichier (extension .desktop la plupart du temps) et le placer avec les autres lanceurs d’applications dans /usr/share/applications/

On peut aussi mettre ce lanceur ailleurs mais afin de le rendre actif, il faut faire un clic droit dessus, aller dans l’onglet Permissions et cocher l’option Autoriser l’exécution du fichier comme un programme.

Flash d’un téléphone Nexus One et Fastboot

J’ai passé le Nexus One de mon petit frère, qui jusqu’ici était en firmware officiel, en Cyanogen Mod V7.

Pour ce faire, comme le veut la procédure, il m’a fallut activer la possibilité d’installer des ROM alternatives. Ainsi, il me fallait utiliser le logiciel Fastboot. Celui ci n’est plus dans le dossier tools du SDK mais dans le dossier plateform-tools. En tout cas il est dans le SDK et donc il n’est pas nécessaire de le télécharger en plus.

Autre fait à savoir sur le Nexus One, pour lancer le bootloader, il faut allumer le téléphone en maintenant la boule de joystick appuyée.

Récupérer les mots de passe tapés et enregistrés dans FileZilla

Lors de la réinstallation de mes systèmes d’exploitation, j’ai voulu réenregistré tous les mots de passe que j’avais tapé dans FileZilla afin de pouvoir accéder à mes FTP sur ma machine fraîchement remise à neuve. J’ai donc commencer à taper tous mes identifiants à la main puis je suis tombé sur une connexion dont je ne me souvenais plus du mot de passe. J’ai donc cherché comment je pourrais récupérer cette information.

Après quelques recherches, j’ai trouvé une solution qui me permettait de récupérer tout ce que j’avais tapé dans FileZilla mais aussi de ne pas avoir à tout retaper dans ma nouvelle installation.

Il suffit ainsi simplement de faire Fichier -> Exporter les paramètres sur le premier FileZilla. Il faut cocher toutes les options d’export. Ceci génère un fichier XML qui contient en clair tous les mots de passe qui ont été tapés.

Il ne reste qu’à faire Fichier -> Importer les paramètres dans le second FileZilla pour importer le fichier généré et se retrouver avec tout disponible comme avant.

Activer l’espace insécable sous Xubuntu

J’avais eu un problème similaire il y a quelques années lorsque je travaillais avec Code::Blocks. Les espaces n’étaient pas pris en considération. La cause est que seuls les espaces insécables (non-breaking spaces) sont pris en compte. Il existe plusieurs manières de remédier à ce problème :

  • La première est la plus contraignante mais la plus pérenne. Elle consiste à insérer les espaces à l’aide des touches Ctrl + Alt + Espace
  • La deuxième est celle qui avait fonctionné sur ma Ubuntu quelques années auparavant. Elle consiste à aller dans les options Système -> Préférence -> Clavier -> Onglet Agencement -> Autres Options -> Using space key to input non-breakable space character -> Space key outputs usual space at any level
  • Une autre solution que je n’ai jamais testée moi même mais que j’ai trouvé sur internet consiste à modifier son fichier /etc/X11/xorg.conf et à commenter la ligne  » Option « XkbVariant » « oss »  » puis à redémarrer le serveur X.
  • Enfin, celle qui m’a permis de résoudre mon problème sous Xubuntu a été de me rendre dans Paramètres -> Gestionnaire de paramètres -> Clavier -> Onlget Disposition -> Décocher utiliser les paramètres par défaut -> Modifier la disposition du clavier -> Français (variante obsolète)

Toutes ces techniques permettent d’activer les espaces insécables à la place des espaces normaux mais ne fonctionnent pas forcément toutes en fonction de la distribution utilisée.

 

Fixer une adresse IP manuellement sous Linux

Pour fixer une adresse IP sous Linux, il suffit de modifier le fichier /etc/network/interfaces.

Ce fichier contient les configurations des différentes interfaces réseau de la machine. Il suffit de créer des lignes selon ce format pour avoir une interface dont l’IP (v4) sera fixée :

iface <NOM_DE_L_INTERFACE> inet static
address <ADRESSE_IP_QUE_L_ON_VEUT_FIXER>
netmask <MASQUE_DE_SOUS_RÉSEAU>
getway <ADRESSE_DE_LA_PASSERELLE_PAR_DEFAUT>

Pour la repasser en IP dynamique, il suffit de remplacer ces lignes par :

iface <NOM_DE_L_INTERFACE> inet dhcp

Déplacer un WordPress sur un autre serveur

L’autre jour, j’ai essayer d’aider un copain (http://www.lebuffetplaylist.fr/) à s’occuper de son WordPress qui avait été installé en un clic avec l’option application de 1&1. Cette option s’avère être un vrai calvaire pour toutes les opérations de maintenance pour plusieurs raisons.

La première est que les droits accordés à l’application ne permettent pas d’ajouter ou de modifier quoi que ce soit à la main. Toutes les opérations ne peuvent être faites que depuis WordPress. De plus les permaliens ne peuvent pas fonctionner puisque sur 1&1, le module pour l’url rewriting ne s’active qu’en modifiant le .htaccess.

La deuxième est l’impossibilité d’accéder à la base de données créée pour l’occasion. On ne peut même pas la dumper sans passer par un plugin WordPress.

Après avoir cherché des solutions pendant un bon moment, et vu la faible marge de manœuvre qu’autorise l’application pré installée 1&1, nous avons finis par faire une exportation depuis l’onglet « Outils« , copier le thème directement dans le dossier wp-content/themes/ et noté pour réinstallation le nom des plugins qui l’intéressaient. Ceci  a aussi permis de faire du trie vu la quantité prodigieuse de plugins qui s’entremêlaient. Il fallut cependant refaire quelques configurations comme l’agencement de certains modules/liens.

Cette solution était un peu particulière vu la nature du problème mais il existe un plugin incroyablement efficace et qui a l’avantage d’être simple à utiliser.

L’offre iKoula que je possède actuellement n’ayant qu’une durée d’un an, je me retrouverais avec cette nécessité de transfert donc j’ai préféré prendre les devant. En plus de me fournir un transfert immédiat le jour où j’en aurais besoin, le plugin que j’ai choisis me permet de faire des sauvegardes régulières pour le cas où un problème survienne.

Le plugin que j’ai choisis est WordPress Move. Il suffit de recréer une installation basique standard sur le nouvel emplacement et d’y installer le plugin pour faire le transfert et réinstaller plugins/thèmes/posts/commentaires comme si ils avaient étés fait sur ce nouveau serveur et pas sur l’ancien. Redoutable !

Désactiver la commande sudo

Pour l’administration de mes serveurs, afin d’éviter tout risque de piratage, il est nécessaire d’avoir 2 mots de passe pour effectuer des commandes root.

Imaginons que notre compte utilisateur a accès à la fonction sudo, comme c’est le cas du première utilisateur créé dans la plupart des distributions GNU/Linux, et que le mot de passe de connexion en SSH est le mot de passe de ce compte. Si quelqu’un arrive à prendre connaissance du mot de passe lors de la connexion (keylogger, regard indiscret, …), il pourra ensuite se reconnecter et avoir un contrôle total du serveur distant.

Afin d’éviter cela, nous allons désactiver la fonction sudo pour l’utilisateur en question. Ainsi, pour effectuer des commandes administrateurs, il faudra se connecter préalablement en tant que super utilisateur.

On changera aussi le mot de passe du super utilisateur pour qu’il soit différent de celui du compte de l’utilisateur, sinon ceci n’a aucun intérêt.

Pour changer le mot de passe de root, rien de plus simple :

  • Si il a déjà été fixé, il suffit de faire
su
passwd

et de taper son nouveau mot de passe.

  • Si il n’a jamais été fixé, il faut se connecter avec un utilisateur possédant le droit d’utilisation de la fonction sudo et faire :
sudo su
passwd

et de taper le nouveau mot de passe.

Maintenant que nous sommes sûr d’avoir un utilisateur root avec un mot de passe que l’on connait, on va désactiver la fonction sudo. Pour ceci plusieurs possibilités :

  • Désinstaller purement et simplement la fonction sudo avec :
apt-get purge sudo
  • Modifier le fichier /etc/sudoers et commenter/supprimer les lignes correspondantes aux utilisateurs. Vous pouvez choisir de laisser ou d’enlever root du fichier. L’intérêt de le laisser est de na pas avoir une erreur lorsque, machinalement, on tape sudo alors qu’on est connecté en root. L’enlever vous forcera à bien séparer les commandes administrateurs des commandes utilisateur dans votre tête. Une autre solution pour se forcer est de retirer la commande sudo du path de l’utilisateur root. Ne connaissant plus la commande sudo, il indiquera systématiquement une erreur.

Il ne reste plus qu’à valider les changements soit en redémarrant la machine, soit à l’aide de la commande :

/etc/init.d/sudo restart

Comment personnaliser sa bannière de connexion SSH

Lorsque l’on se connecte à son serveur en SSH, on a souvent un texte de base contenant des informations sur le serveur. Nous allons ici personnaliser le texte affiché.

La première étape consiste à activer la bannière dans le fichier de configuration d’openSSH. Pour ce faire, on va dans /etc/ssh/ et on modifie le fichier sshd_config. On décommentera la ligne :

#Banner /etc/issue.net

ou on la créera si elle n’y est pas. L’URI indique le fichier qui contiendra notre message d’accueil. On peut modifier son emplacement si on le veut ou simplement utiliser celui qui existe déjà. Après modification du fichier de bannière, un redémarrage à l’aide de la commande

/etc/init.d/ssh restart

suffit à faire prendre en compte les modifications. La bannière est maintenant affichée dès qu’une demande de connexion est effectuée.

Différentes manières de désactiver l’indexage des dossiers dans Apache2

Dans les dossiers de site internet, Apache va chercher à ouvrir les fichiers qui ont été configurés par défaut (la plupart du temps ce sera index.html ou index.php). Si ces derniers ne figurent pas, Apache va faire un listing des fichiers/dossiers qui sont présents. Ceci peut être particulièrement dangereux si vous possédez des fichiers personnels que vous ne souhaitiez pas partager ou si une personne malveillante s’en sert pour repérer l’arborescence du site et pour repérer les pages d’administrations par exemple.

Il existe plusieurs manières de désactiver ce listage par défaut :

1/ La première consiste, à modifier le fichier de configuration globale d’Apache ou des Virtual Hosts indépendamment en indiquant l’option :

Options -Indexes

On pourra aussi ajouter l’option -FollowSymLinks pour désactiver le suivi des liens symboliques.

2/ La deuxième consiste, si la directive AllowOverride Indexes ou AllowOverride All est activée, à rajouter :

Options -Indexes

dans le fichier .htaccess du répertoire qui ne doit pas afficher l’index. Elle s’appliquera récursivement à tous les sous-dossiers.

3/ Enfin, la dernière solution consiste à désactiver le module autoindex d’apache. Pour ce faire on peut procéder en commentant la ligne

LoadModule autoindex_module modules/mod_autoindex.so

dans le fichier httpd.conf. ou alors en désactivant en ligne de commande le module en tapant :

a2dismod autoindex