Changer de client NetSoul sur les Fedora 14 d’Epitech

Le client Netsoul présent de base sur les racks et laptops d’Epitech n’est pas vraiment à mon gout. C’est pourquoi j’écris ce petit billet qui sera la première étape vers un changement de client NetSoul (Comme QNetSoul ou encore ANetZen).

NSALab - Le laboratoire d'Epitech dedie a l'administration systeme et reseaux! Passez nous voir :)

Le seul prérequis de ce billet est d’avoir ajouté votre utilisateur dans les sudoers du système. Si vous ne savez absolument pas comment vous y prendre, ou que vous préférez ne pas prendre de risque, je vous invite à lire cet article.

Commencez par éditer le fichier /etc/rc.local en tant que root avec votre éditeur de texte préféré!

rohja@tartopom:$ sudo emacs -nw /etc/rc.local

Recherchez la ligne suivante, et commentez la! (avec un #)

/usr/bin/perl /etc/scripts/network_wrapper.pl '/etc/scripts/ns_host.pl &' &

Une fois cette ligne commentee, renommez les executables Netsoul presents dans /usr/libexec. Les executables a renommer sont ceux commencant par ns_

root@tartopom:$ cd /usr/libexec; mv ns_auth ns_auth.old; mv ns_connect ns_auth.old; mv ns_client ns_client.old; mv ns_xm ns_xm.old

Installez en suite le client de votre choix! Et faites en sorte qu’il se lance en meme temps que votre session! :)

Si votre client n’arrive pas a se connecter a ns-server.epita.fr, remplacez l’adresse par cette IP: 10.42.1.59, vous n’aurais ainsi plus besoin de resoudre l’adresse par l’intermediaire du serveur DNS de l’ecole.

Unstage rapide avec Git!

Git!

Aujourd’hui, un post tres court concernant Git. J’utilise beaucoup ce SCM ces temps ci (en meme temps que SVN -> Je dois utiliser SVN pour mes redus de cours mais je travaille sur mon serveur Git personnel).

Le unstage est une fonctionalite frequement utilise, et pour moi peu pratique sous Git. Voici donc comment la simplifier:

rohja@tartopom:$ git config --global alias.unstage 'reset HEAD --'

Pour unstage le fichier nomme MainWindow.cc par exemple, il vous faudra desormais taper la commande suivante:

rohja@tartopom:$ git unstage MainWindow.cc

Voila!

Modifier sa configuration de SSHd pour n’autoriser qu’un seul utilisateur.

Cette article s’adresse encore une fois principalement aux étudiants d’Epitech (bien que ces indications peuvent être utilisés dans le cadre d’une configuration similaire du système).

L’objectif du jour est de configurer son rack pour empècher la connexion SSH depuis un autre nom d’utilisateur que celui de son propriétaire (et donc ainsi empècher l’utilisateur root du Bocal d’avoir une porte dérobée!).

Pour realiser ces manipulations, vous devrez avoir prealablement placé votre utilisateurs dans la liste des sudoers. Je vous invite à lire [cet article] pour découvrir comment faire.

Pour commencer, ouvrez le fichier /etc/ssh/sshd_config:

rohja@tartopom:$ sudo emacs -nw /etc/ssh/sshd_config

Vous pouvez biensur utiliser l’éditeur de votre choix…

Rendez vous à la ligne commençant par AllowUsers et remplacez root par votre propre nom d’utilisateur: login_a

Desactivez en suite la possibilité de se connecter en tant que root en modifiant la ligne PermitRootLogin: passez de yes vers no.

Pour finir, rechargez la configuration du serveur SSHd:

rohja@tartopom:$ sudo /etc/init.d/sshd reload

Voilà! Il vous est désormais possible de vous connecter en ssh à votre rack tout en empèchant les autres utilisateurs du PIE (= Parc Informatique de l’Ecole) d’y avoir accès.

Depots officiels Fedora 14

Les racks actuels d’Epitech (Promo 2015 et superieur) n’ayant plus les depots Fedora 14 64bits d’origine, voici une methode simple pour les remettre sans casser son systeme (si instable soit il de base…).

Tout d’abord, vous aurez besoin d’un access root: nous utiliserons la commande sudo.
Par defaut, les utilisateurs du PIE ne sont pas dans la liste des sudoers.
Rebootez votre systeme. Une fois sur le Grub (menu permettant de choisir entre Fedora_std, Fedora_exam et Windows), selectionnez la ligne correspondant a Fedora_std et appuyez sur la touche E (= Editer).
Un nouveau menu apparait, selectionnez cette fois la ligne commancant par Kernel et reappuyez sur la touche E.

A la fin de cette ligne, ajouter le mot « single » (tout en minuscule, sans les doublequote).

Validez avec la touche Enter et demarrez votre systeme avec la touche B.

Un shell root devrait apparaitre une fois les services du systeme lances. C’est maintenant que les choses serieuses commencent!

Passez le fichier sudoers en ecriture:

root@localhost:$ chmod +w /etc/sudoers

Ajoutez en suite la ligne suivante au fichier /etc/sudoers avec l’editeur de votre choix!

mon_login ALL=(ALL) ALL

Sauvegardez, et remettez le fichier en lecture seule:

root@localhost:$ chmod -w /etc/sudoers

Redemarrez votre systeme, loguez vous, and VOILA! :)

Vous pouvez desormais utiliser des commandes en tant que root en utilisant la commande sudo et votre mot de passe utilisateur.

Pour ajouter le depot officiel Fedora 14, executez la commande suivante:

rohja@localhost:$ sudo wget http://pastebin.com/raw.php?i=gkDqkz21 -O /etc/yum.repos.d/fedora.repo

Une fois le téléchargement terminé, vous pourrez utiliser la commande yum pour installer/supprimer/mettre à jour les programmes de votre rack.

Exemple: pour installer Meld:

rohja@localhost:$ sudo yum install meld

Desactiver le screensaver de X11

Bonjour bonjour!

Dernierement, j’ai eu besoin de monter une machine en mode Kiosk. Ces machines d’affichages ont pour vocation d’afficher du contenu (dans mon cas, une page web en fullscreen) 24h sur 24, sans jamais se mettre en veiller. Or, sur une machine ubuntu 10.04 Desktop, avec un bureau Openbox et XScreensaver desinstalle, le screensaver d’X11 persiste a s’activer au bout de N minutes !!

Toutefois, une solution *simple* existe: les options de X11 de ce genre sont configurable depuis la commande xset.

Il nous suffi donc d’executer la commande suivate depuis notre utilisateur Kiosk:

kiosk@kiosk-display:$ xset -dpms s off

Et voila! :)

Modifier les limites systeme (ulimit) depuis un script Python.

Il est parfois utile de pouvoir changer les limites imposes par le système (nombre maximale de FD, etc) depuis l’intérieur d’un script Python.

Cette modification est possible de différentes manière, mais la meilleures reste d’utiliser le module python resource !

Grace a la fonction setrlimit il vous est possible de modifier les limites comme vous le feriez avec ulimit. Cette fonction prends deux paramètres: resource et limits.

resource correspond a un des defines de resource (ex: RLIMIT_CORE, RLIMIT_CPU, etc) et limits correspond a un tuble content la valeur « soft » et la valeur « hard ».

  • Exemple:

setrlimit(RLIMIT_NOFILE, (256, 1024))

Continuer a utiliser Git sans galerer les matins ou il n’y a plus de cafe !

Si comme moi, vous avez des matins avec, et des matins sans vous comprenez certainement ma douleur quand je dois trifouiller dans des commits de la semaine d’avant à 9h un lundi ! :)

Biensur, il existe des outils graphiques pour vous faciliter la tache : Giggle, Git[g/k/x], etc. Personnelement, mon choix s’est porté sur quelque chose de beaucoup plus simple, mais tout autant voire plus efficace : une petite configuration du prompt bash.

Le methode est simple : remplacer la variable PS1 de base par quelque chose de plus « adapte » à nos besoins.

C’est sur le Gist de tdd que j’ai trouve mon bonheur: un prompt bash affichant la branche courante, si l’on se trouve ou non a la racine du depot, si il y a des modifications non commits, si on effectue un rebase ! etc…! La liste est assez longue :)

Pour installer ce prompt, rien de plus simple: copiez l’integralite du code a la fin de votre ~/.bashrc et executez la commande: ~$ source ~/.bashrc

Python SMTP Server

Il est parfois necessaire d’avoir un serveur SMTP « de debug » sous la main lorsque l’on participe au developpement d’une application web. Toutefois, il est généralement peu utile de déployer une solution complète comme Exim ou Sendmail pour ne tester qu’une page d’inscription.

Heureusement pour nous, comme a son habitude, il est possible de passer outre ce problème a l’aide de Python!

La commande suivante permet de lancer un serveur qui ecoutera sur le port 25 de l’adresse 127.0.0.1 ! Elle vous affera en suite differentes infos concernant le mail recu ! :)

rohja@tartopom:$ sudo python -m smtpd -n -c DebuggingServer localhost:25

A voir : http://muffinresearch.co.uk/archives/2010/10/15/fake-smtp-server-with-python/

Comment convertir un chargeur secteur US en un chargeur usb.

Ce soir, un peu d’electronique « A l’arrache ». Pas de grosses explications, rien de propre : juste un petit hack rapide histoire de rendre la vie a mon matos 100% Made In China (Antoine, si tu passe par la… :D ).

Le principe est simple : trouver une vieille tour de PC de la rue, lui arracher ses ports usb de la facade. Souder les fils +/- sur les pattes correspondantes du chargeur 5V american. Refermer et scotcher le tout « avec un minimum de classe ». Et le tour est joue.

Pas specialement cool pour le commun des mortels, mais pour les gens comme moi, ca le fait largement. Enjoy ! :)

Cloner un <select> avec JQuery

Suite a un travail durant mon stage, j’ai du « cloner » une partie du DOM de ma page à l’aide de JQuery. Jusque la, rien de compliqué, la methode clone() faisant généralement bien le travail!

Pourtant, il existe certains cas où cette fonction n’est pas suffisante ! Quand un <select> est présent dans la partie du DOM à copier, l’élément choisi n’est pas sauvegardé avec clone().

Heureusement, de gentils développeurs web se sont dévoué pour trouver une solution !

La voici :

(function($,undefined) {
    $.fn.cloneSelects = function(withDataAndEvents, deepWithDataAndEvents) {
        var $clone = this.clone(withDataAndEvents, deepWithDataAndEvents);
        var $origSelects = $('select', this);
        var $clonedSelects = $('select', $clone);
        $origSelects.each(function(i) {
            $clonedSelects.eq(i).val($(this).val());
        });
        return $clone;
    }
})(jQuery);

Source : http://stackoverflow.com/questions/742810/clone-isnt-cloning-select-values