Changer son adresse MAC

L’adresse MAC est un identifiant physique stocké dans votre carte réseau. Elle ressemble à ceci :

5E:FF:56:A2:AF:15

Elle est définie par le fabricant de votre carte réseau parmi les 248 (environ 281 000 milliards) d’adresses MAC possibles et donc unique au monde. C’est pourquoi on l’appelle souvent « adresse physique » car elle identifie de façon unique votre ordinateur.

Cette adresse est utilisée pour vous assigner un IP fixe, filtrer votre connexion réseau, vous traquer, lier une licence logicielle à votre ordinateur, ou vous donner seulement 15 minutes gratuites de wifi dans les aéroports…

Mais on peut la changer logiciellement. Sous linux, avec le logiciel macchanger vous pouvez générer une nouvelle adresse MAC de cette façon, en root dans un terminal :

# macchanger -A eth0

Remplacer eth0 par l’interface réseau qui vous intéresse: wlan0 pour le wifi par exemple.

Pour revenir à votre adresse MAC d’origine:

# macchanger -p eth0

J'aime(6)Ferme-la !(0)

Lister et tuer les processus en cours sous Linux

Pour lister les processus de tous les utilisateurs du système : ps -faux
Pour lister uniquement vos processus : ps -fux

$ ps -fux
 USER  PID  %CPU %MEM VSZ   RSS TTY STAT START TIME COMMAND
 erwan 3377 0.0 0.1 600268  13212  ? Ssl 16:06 0:00 x-session-manager
 erwan 3418 0.0 0.0 10584   336    ? Ss  16:06 0:00 \_ /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager
 erwan 3442 0.0 0.2 816644  21384  ? Sl  16:06 0:00 \_ /usr/lib/gnome-settings-daemon/gnome-settings-daemon
 erwan 3520 1.7 2.5 1893352 202408 ? Sl  16:06 1:29 \_ /usr/bin/gnome-shell
 erwan 5067 3.9 3.8 1242492 302140 ? Sl  16:24 2:39 | \_ iceweasel
 erwan 6172 0.0 0.3 906316  25784  ? Sl  17:13 0:00 | \_ nautilus --new-window
 erwan 3572 0.0 0.1 551768  9596   ? SNl 16:06 0:00 \_ /usr/lib/tracker/tracker-miner-fs

C’est beaucoup plus pratique que la commande top car il n’y a pas de limitation de hauteur d’écran.

On y trouve des infos très utiles :

  • l’user qui a lancé le processus
  • la commande complète avec arguments qui a servie à lancer le processus
  • l’arborescence des commandes pour savoir quels sont les processus parents et enfants.
  • la date à laquelle le processus a été lancé et sa durée de vie
  • la charge du CPU
  • le PID, identifiant propre à chaque processus

Pour arrêter les processus qui vous intéressent, récupérez le PID correspondant (ex: 5067) et lancez :

$ kill 5067

.
Si le programme ne se ferme pas assez rapidement, vous pouvez le forcer à s’arrêter immédiatement :

$ kill -9 5067
J'aime(0)Ferme-la !(0)

Lister les connexions entrantes de votre ordinateur

La commande netstat -tape permet de lister les processus qui acceptent des connections entrantes sur votre ordinateur. Facile à se rappeler !
Pour plus d’information, man netstat.

# netstat -tape
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        User       Inode       PID/Program name
tcp        0      0 localhost:60061         *:*                     LISTEN      mysearch   7850        2813/python     
tcp        0      0 *:43173                 *:*                     LISTEN      statd      13393       1844/rpc.statd  
tcp        0      0 *:sunrpc                *:*                     LISTEN      root       13372       1816/rpcbind    
tcp        0      0 *:ssh                   *:*                     LISTEN      root       33422       6097/sshd       
tcp        0      0 *:gdomap                *:*                     LISTEN      root       6788        2253/gdomap     
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN      root       13375       1816/rpcbind    
tcp6       0      0 [::]:32947              [::]:*                  LISTEN      statd      13397       1844/rpc.statd  
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      root       33424       6097/sshd
J'aime(0)Ferme-la !(0)

Dossier partagé entre utilisateurs sous Linux

La problématique du jour est de faire un répertoire partagé entre les utilisateurs d’un même ordinateur sous linux.

Permissions Unix, la mauvaise solution

Les permissions Unix sont très performants pour restreindre les accès mais rendent la création d’un répertoire partagé impossible en pratique.

La solution classique serait de créer un groupe qui regroupe les utilisateurs et de faire en sorte que tous les fichiers partagés appartiennent à ce groupe. Ca fonctionne en théorie, mais dans la pratique, les utilisateurs créent/modifient/copient  des fichiers sans vouloir mettre à jour les permission groupes. Et seul le propriétaire du fichier peut modifier la permission de groupe du fichier, ce qui rend la chose ingérable.

Le SGID est également une fausse bonne idée pour propager les droits aux fichiers créés car il ne se propage pas aux fichiers copiés par l’utilisateur vers le dossier partagé.

ACL

La solution élégante et performante passe par les ACL ou Access Control List. Elle permet un contrôle bien plus fin et explicite.

Pour avoir accès aux droits ACL vous devez avoir ajouté l’option à votre /etc/fstab .
Ex :

/dev/hda6 /home ext3 options1,option2,option3,acl 0 0

Une fois fait, remontez le point de montage.

# mount -o remount,acl /home

Assignation des droits ACL

On crée un dossier en root /home/dossier_partage. Personne peut y accéder à part root. Jusqu’ici rien de spécial.

# cd /home
# mkdir dossier_partage
# chmod 770 dossier_partage

On crée un groupe « partage » et on ajoute les utilisateurs à ce groupe.

# addgroup partage
# usermod -a -G partage bob
# usermod -a -G partage alice

On ajoute des droits étendus pour que les membres du groupe « partage » puissent tout faire dans ce dossier. La deuxième ligne fait en sorte que les fichiers nouvellement créés héritent aussi de cette règle ACL.

# setfacl -Rm g:partage:rwX dossier_partage
# setfacl -Rm d:g:partage:rwX dossier_partage

On peut vérifier les droits finaux ainsi :

$ getfacl dossier_partage/

# file: dossier_partage/
# owner: root
# group: root
user::rwx
group::rwx
group:partage:rwx
mask::rwx
other::—
default:user::rwx
default:group::rwx
default:group:partage:rwx
default:mask::rwx
default:other::—

Astuce sécurité

Par défaut, le /home/user des utilisateurs n’est pas privé sous Debian ! Si bien que Alice peut lire les fichier dans /home/bob .

Je vous recommande la lecture de ce document sur comment sécuriser Debian, surtout ces 2 points

  • 4.11.13.1 Limiter l’accès aux informations d’autres utilisateurs
  • 4.11.12 Positionner des umasks aux utilisateurs

Le plus important : Pour tous vos utilisateurs existants, assurez que le dossier home bloque bien l’accès aux autres utilisateurs :

# chmod 750 /home/bob

Ensuite, vous pouvez faire en sorte que soit créé automatiquement comme ça quand vous créez un utilisateur:

# dpkg-reconfigure adduser

et choississez Non

Vous pouvez également faire en sorte que les utilisateurs créént par défaut des fichiers que seuls eux peuvent voir :

# echo session optional pam_umask.so umask=027 >> /etc/pam.d/common-session

Dans /etc/login.defs, changez la valeur à UMASK 027

Pour vérifier les droits de l’utilisateur courant :

$ umask

J'aime(3)Ferme-la !(0)

Installer Steam sur Debian Testing (Jessie)

Voici les commandes nécessaires pour installer Steam sur Debian Testing en utilisant le binaire officiel de Valve.

Les commandes sont à lancer en root.

# dpkg –add-architecture i386

# apt-get update

# apt-get install libc6:i386 libgl1-mesa-glx:i386

# wget http://media.steampowered.com/client/installer/steam.deb

# dpkg -i steam.deb

On peut ensuite lancer steam depuis le compte de son user:

$ steam

J’ai testé Dota2 avec ma carte graphique intégrée Intel HD4600 et c’est injouable en basse qualité alors que j’ai de bonne performances avec son concurrent HoN.

J'aime(0)Ferme-la !(0)

Régler le niveau de noir de la sortie vidéo HDMI

Si vous branchez un écran sur la sortie HDMI, il se peut que les couleurs soient trop fades (le noir de la barre Gnome-shell apparaît comme gris foncé) ou trop sombres (les films paraissent mal définis dans les zones sombres).

Cela est du au fait que les valeurs transportées par le câble HDMI sont encodées soit sur  0-255, soit sur 13-235 et que l’écran et la carte graphique doivent s’accorder sur la même plage de valeur pour définir correctement le blanc et noir.

Pour comprendre le problème en profondeur, je vous recommande la lecture de cet article.

Sous Linux, voici les commandes pour passer la sortie vidéo de votre carte graphique d’une plage à l’autre :
$ xrandr --output HDMI2 --set "Broadcast RGB" "Full"

$ xrandr --output HDMI2 --set "Broadcast RGB" "Limited 16:235"
Personnellement, j’ai eu le soucis en branchant un écran LED pour ordinateur Samsung sur la sortie HDMI du GPU HD4000 intégré à mon CPU Intel i5.

J’ai du forcer le range à « Full » pour retrouver de vrais noirs comme expliqué dans cet article et aussi régler le « HDMI Black level » à « Normal » dans le panneau de configuration de l’écran.

J'aime(0)Ferme-la !(0)

Exécuter une application graphique root dans une session utilisateur

avec su, si vous essayez de lancer une application en mode root, vous allez avoir ce genre de problème :

 root@localhost:/home/user# gedit
(gedit:11184): EggSMClient-WARNING **: Failed to connect to the session manager: None of the authentication protocols specified are supported
** (gedit:11184): WARNING **: Could not connect to session bus

Pour exécuter une application graphique en root depuis un terminal graphique, il faut utiliser gksu sous Gnome par exemple. Exemple :

$ gksu gedit

J'aime(0)Ferme-la !(0)