Droits spéciaux Linux : setuid, setgid et sticky bit

Samuel Chevalley
20 septembre 2016

SETUID

Lorsqu’un utilisateur exécute un script, celui-ci se lance avec les droits de l’utilisateur du fichier. Il arrive que l’on veuille lancer une commande spéciale (en général dévolue à root) en tant que simple utilisateur, exemple avec la commande passwd (sous /usr/bin/passwd) qui est une commande root, mais tous les utilisateurs peuvent pourtant changer leur mot de passe avec cette commande. En regardant les droits sur passwd, on s’aperçoit que ce fichier est setuidé : Lire la suite Droits spéciaux Linux : setuid, setgid et sticky bit

Comment créer un script qui se lance automatiquement au boot sur RHEL 7

Samuel Chevalley
20 septembre 2016

Imaginons que nous avons le script suivant à lancer au boot (situé ici : /usr/local/sbin/example.sh) :

#!/bin/bash
echo "boot : `date`" > /tmp/bootTime.txt

Lire la suite Comment créer un script qui se lance automatiquement au boot sur RHEL 7

Gestion des services sur RHEL 7 avec systemd

Samuel Chevalley
20 septembre 2016

Depuis RHEL 7, la gestion des services est différente de RHEL 6, 5 …

Comparaison de l’utilisation des services avec « systemctl »

service systemctl Description
service name start systemctl start name Démarrer un service
service name stop systemctl stop name Stoper un service
service name restart systemctl restart name Redémarrer un sevrice
service name condrestart systemctl try-restart name Redémarrer un service que si il est déjà lancé
service name reload systemctl reload name Recharger la configuration
service name status systemctl status name

systemctl is-active name

Checker si le service est lancé
service –status-all systemctl list-units –type service –all Afficher le statut du service

Lire la suite Gestion des services sur RHEL 7 avec systemd

Optimiser l’utilisation de la RAM/SWAP sous Linux

Samuel Chevalley
22 juillet 2016

Afin d’affiner l’utilisation de la RAM et du SWAP, on peut dire à Linux quand il doit commencer a écrire sur le disque dur dans l’espace d’échange appelé SWAP afin de délester la RAM.

En Clair :

  • vm.swappiness = 0 – Linux utilisera le HD en dernière limite pour éviter un manque de RAM.
  • vm.swappiness = 60 – Valeur par défaut de Linux : à partir de 40% d’occupation de Ram, le noyau écrit sur le disque.
  • vm.swappiness = 100 – tous les accès se font en écriture dans la SWAP.

Lire la suite Optimiser l’utilisation de la RAM/SWAP sous Linux

Ajouter/supprimer des disques sous Linux sans rebooter

Samuel Chevalley
30 juin 2016

Dans le monde de la virtualisation, après avoir ajouté un disque virtuel sur une VM Linux, il serait préférable qu’il soit reconnu sans avoir à rebooter.
Pour ce faire, identifiez le contrôleur SCSI (Par exemple 1:0, 2:0 ou 3:0 etc…). En effet, en ajoutant le disque, vous pouvez choisir l’ID du disque. Pour paralléliser le trafic et améliorer les performances, on peut choisir de mettre un disque sur un second contrôleur (1:x au lieu de 0:x). Exécutez ensuite la commande suivante ou hostX correspond à l’ID de votre contrôleur SCSI (host0 pour 0:x, host1 pour 1:x, etc..)

for i in /sys/class/scsi_host/host*/scan; do echo « – – – » >$i; done

 

On peut aussi supprimer un disque à chaud. Une fois que vous êtes sûr que votre disque virtuel a été libéré de toute contrainte, vous pouvez le supprimer de la configuration de la VM.

Toutefois, l’inode se référant au disque n’est pas supprimer par les vmware tools. Aussi, vous pouvez exécuter la commande suivante afin de le supprimer (dans l’exemple, pour retirer /dev/sda) :

echo 1 > /sys/block/sda/device/delete

Connaitre la taille d’une partition sur ESXi 5.5

Samuel Chevalley
29 juin 2016

Pour l’exemple, nous allons chercher la taille de la partition pour les core dump :

/etc # esxcli system coredump partition list
Name                    Path                        Active  Configured
------------  ----------------------------  ------  ---------
mpx.vmhba32:C0:T0:L0:7  /vmfs/devices/disks/mpx.vmhba32:C0:T0:L0:7    true        true

Il s’agit donc de la partition 7 du device mpx.vmhba32:C0:T0:L0

Lire la suite Connaitre la taille d’une partition sur ESXi 5.5

Analyser les options d’un script avec « getopts »

Samuel Chevalley
13 juin 2016

La commande interne getopts permet à un script d’analyser les options passées en argument.Pour vérifier la validité de chacune des options, il faut appeler getopts à partir d’une boucle. Lire la suite Analyser les options d’un script avec « getopts »

LUN mapping

Samuel Chevalley
10 juin 2016

Trouver le WWN des ports fibres sous Linux

Avec la commande « systool », on peut trouver les 2 WWN des 2 ports fibres :

[root@linux ~]# systool -c fc_host -v
Class = "fc_host"

 Class Device = "host2"
 Class Device path = "/sys/class/fc_host/host2"
 fabric_name = "0x1000000533aa7b76"
 issue_lip = <store method only>
 node_name = "0x5001438409ac4f81"
 port_id = "0x150b00"
 port_name = "0x5001438409ac4f80"
 port_state = "Online"
 port_type = "NPort (fabric via point-to-point)"
 speed = "8 Gbit"
 supported_classes = "Class 3"
 supported_speeds = "1 Gbit, 2 Gbit, 4 Gbit, 8 Gbit"
 symbolic_name = "HPAK344A FW:v4.04.09 DVR:v8.03.01.04.05.05-k"
 system_hostname = ""
 tgtid_bind_type = "wwpn (World Wide Port Name)"
 uevent = <store method only>

 Device = "host2"
 Device path = "/sys/devices/pci0000:00/0000:00:03.0/0000:09:00.0/host2"
 ct =
 edc = <store method only>
 els =
 fw_dump =
 nvram = "ISP "
 optrom_ctl = <store method only>
 optrom =
 reset = <store method only>
 sfp = ""
 uevent = <store method only>
 vpd = "▒&"

Lire la suite LUN mapping