Système | Système : Débian | Réseau avancé | Apache et PHP |
Système : utilisateurs | Utilisation du bash | Iptables | MYSQL |
Système : droit des fichiers | Bureautique : image | Samba | Autres services réseaux |
Système : fichiers | Bureautique : audio | DHCP | programmation bash |
Système : partitions | Bureautique : video | DNS | Android |
Système : périphériques | Tex et Metapost | LDAP | Raspberry |
Système : interface graphique | Réseau | LDAP et Samba |
apt-get install qemu-utilsrmmod nbdmodprobe nbd max_part=8qemu-nbd -c /dev/nbd0 a.dvifdisk -l /dev/nbd0
umount /dev/nbd0p1qemu-nbd -d /dev/nbd0rmmod nbd
systemd
sous Linux, le fichier /etc/rc.local n'est plus exécuté au démarrage.[Unit]Description=/etc/rc.local CompatibilityConditionPathExists=/etc/rc.local[Service]Type=forkingExecStart=/etc/rc.local startTimeoutSec=0StandardOutput=ttyRemainAfterExit=yesSysVStartPriority=99[Install]WantedBy=multi-user.target
chmod +x /etc/rc.local
systemctl enable rc-local
echo 'Accès Shell Root le ' `date` `who` | \mail -s "`hostname`" monitoring@test.com
cat /proc/meminfo
tar -xvf ~/Downloads/jdk-7u3-linux-i586.tar.gz
mkdir -p /usr/lib/jvm/jdk1.7.0
mv jdk1.7.0_03/* /usr/lib/jvm/jdk1.7.0/
update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0/bin/java" 1
update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0/bin/javac" 1
update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0/bin/javaws" 1
JAVA_HOME=/usr/lib/jvm/jdk1.7.0PATH=$PATH:$HOME/bin:$JAVA_HOME/binexport JAVA_HOMEexport JRE_HOMEexport PATH
cd /usr/lib/mozilla/pluginsln -s /usr/java/jdk1.8.0_51/jre/lib/i386/libnpjp2.so
tail -f /var/log/syslog
quota
permet de gérer l'espace disque utilisé par les fichiers de chaque utilisateur.Voici quelques renseignements globaux sur son fonctionnement :apt-get install quota
lsmod | grep quota
usrquota
et grpquota
(respectivement pour les fichiers appartenant aux utilisateur ou aux groupes)warmquota
(voir le fichier /etc/warmquota.conf)quotacheck -vugm /home
quotaon -u /home
quotaon -g /home
quotaoff
pour désactiver les quota sur une partitionsetquota
permet de définir les quotas pour un utilisateur, un groupe ou par défaut :setquota -u user 100 200 10 15 /home
user
:repquota
permet d'afficher les informations de quota pour les utilisateurs :repquota -u /home
repquota -g /home
repquota -a
tar
permet de gérer et de créer des archives compressées ou non :tar -cvf /mnt/a.tar /home/
tar -cvPf /mnt/a.tar /home/
-j
(bzip2) ; -z
(gzip) ; --lzma
(lzma)gzip
" :tar -cvzf /mnt/a.tar /home/
tar -cv /home/ | gzip > a.gzip
tar -xvf a.tar
tar -tf a.tar
printenv
~
représente le dossier de l'utilisateur courant.Les deux premiers fichiers sont lus qu'une fois lors du log de l'utilisateur. Le troisième fichier est lu à chaque lancement de la commande bash
who
permet d'afficher tous les utilisateurs actuellement loggués au système.who -b
who -a
groups
permet d'afficher tous les noms de groupes auxquels appartient l'utilisateur courant.id -Gn
whoami
id
permet d'avoir des informations sur l'uid et le groupe primaire et les groupes secondaires d'un utilisateur :id
id user
id -G user
id -Gn user
grpck
permet de vérifier l'intégrité des fichiers /etc/group et /etc/gshadowPour lancer cette commande en lecture seule :grpck -r
pwck
vérifie l'intégrité des fichiers /etc/passwd et /etc/shadowPour vérifier ces fichiers en lecture seule :pwck -r
su
et sudo
.su
est une commande de bas-niveau inclus dans toutes les distributions de Linux Voici quelques utilisations de su
:su root
su -l root
chmod
avec les droits de l'utilisateur :su -c "chmod 777 a.txt" root
sudo
fait partie du package sudo
qui permet une utilisation plus souple de la commande su
www-data
peut utiliser le gestionnaire de fichiers pcmanfm
:www-data ALL=(ALL) NOPASSWD: /usr/bin/pcmanfm
groupmod
permet de modifier les informations relatives au groupe du système :groupmod -g 52 users
groupmod -n utilisateurs users
groupmod -p xxxx users
lastlog
et faillog
permettent de connaitre respectivement les logs réussis et râtés de chaque utilisateur.usermod
permet de modifier les données des fichiers /etc/passwd et /etc/group :usermod -g prof user
usermod -G math,info user
usermod -aG root user
usermod -d /home/pascal -s /bin/false thomas
usermod -u 1001 -l tom user
usermod -U user
usermod -L user
userdel
efface un utilisateur. C'est une commande de bas-niveau.deluser
est un script perl utilisant la commande userdel
useradd
est une commande de bas-niveau ajoutant un utilisateur au système :Par exemple :useradd -c "compte personnel" -g "users" -m -d "/home/utilisateur" tom
-m
), son groupe primaire sera "users" et aura pour commentaire dans le fichier /etc/password "compte personnel"useradd -s /dev/false tom
useradd -g users -G apache,root tom
adduser
est une commande perl utilisant useradd
useradd -D
pour voir les valeurs par défautpasswd
gère les mots de passe sur le système :passwd
permet de changer le mot de passe de l'utilisateur courantuser
:passwd user
passwd -S
passwd -aS
passwd -l utilsateur
passwd -d user
passwd -i 5 -m 3 -x 70 -w 2 user
user
verra les changements suivants sur son mot de passe :thomas:$1$ujD66Lzn$fu1vc.eQNetN.QrBxe8fq/:15196:0:99999:7:::
$1$ujD66Lzn$fu1vc.eQNetN.QrBxe8fq
qui est composé de 3 champs :1
l'algorithme de cryptage est "md5"ujD66Lzn
la clef de cryptagefu1vc.eQNetN.QrBxe8fq/
le mot de passe cryptéx
s'il est codéx
apparaitrasort < /etc/group > a.txt
nobody
et nogroup
qui permettent de définir respectivement un utilisateur et un groupe qui ne correspondra à personne.root
pourra utiliser ses fichiers en tant que propriétaire et en tant qu'appartenant au groupe d'appartenance du fichier.umask
permet de définir un masque par défaut pour l'attribution des droits lors de la création d'un nouveau fichier :umask
affiche le masque actuel.umask 0222
définit le nouveau masque à 0222umask 100
: les fichiers et les dossiers seront cr\'ees respectivement avec les droits 666
et 677
.umask 020
: les fichiers et les dossiers seront cr\'ees respectivement avec les droits 646
et 757
.umask 004
: les fichiers et les dossiers seront cr\'ees respectivement avec les droits 662
et 773
.umask 357
: les fichiers et les dossiers seront cr\'ees respectivement avec les droits 310
et 310
.chgrp
permet de changer le groupe propriétaire d'un fichier :chgrp mygroup a.sh
chown
permet de changer le propriétaire d'un fichier :user
devienne le propriétaire du fichier a.shchown user a.sh
chown user:mygroup a.sh
root
tous les fichiers appartenant à l'utilisateur user
du dossier courant et de ses sous-répertoires :chown root -R --from=user
ls -l
" affiche :-rwxrwxrwx 1 thomas users 4096 mar 28 08:35 a.sh
chmod u+s a.sh
ou chmod 4555 a.sh
ls -l
:-rwsrwxrwx 1 thomas users 76 mar 28 08:35 a.sh
chmod g+s a.sh
ou chmod 2555 a.sh
ls -l
:rwxrwsrwx 1 thomas users 76 mar 28 08:35 a.sh
chmod o+s a.sh
ou chmod 1555 a.sh
ls -l
:rwxrwxrwt 1 thomas users 76 mar 28 08:35 a.sh
nosuid
et noguid
permet d'anniler les deux droits setuid
et setgid
sur ce système de fichiers (utile pour sécuriser la monter d'un disque externe)ls -l
" affiche :drwxrwxrwx 1 thomas users 4096 mar 28 08:35 dossier
chmod u+s dossier
ou chmod 4555 dossier
ls -l
" :drwxrwsrwx 1 thomas users 4096 mar 28 08:35 dossier
chmod g+s dossier
ou chmod 2555 dossier
ls -l
" :drwxrwsrwx 1 thomas users 4096 mar 28 08:35 dossier
chmod o+s dossier
ou chmod 1555 dossier
ls -l
" :drwxrwxrwt 1 thomas users 4096 mar 28 08:35 dossier
find /etc -iname '*bak*' -type f -print | xargs /bin/cp -t /home/aa/
find . -iname "*.exe" -exec rm {}\;
find . -ctime -2
(2 jours) ; find . -cmin -10
(10 minutes)find . -mtime -2
(2 jours) ; find . -mmin -10
(10 minutes)find . -atime -2
(2 jours) ; find . -amin -10
(10 minutes)find /home -user nom
find /home -uid nom
find /home -group nom
find /home -not -group nom
find /home -gid nom
find /home -t f -perm 704
find /home/user/Téléchargements/ -type f -uid 1000 -print0 | \du --files0-from=- -hc
find -nouser
find /home -t f
find /home -t d
find /home -t l
find . -size +1M
rename 'y/A-Z/a-z/' *
root
vers /mntcp -P / /mnt
ls -i
ls -m
ls -nl
ls -l --time=atime
temps du dernier accèsls -l --time=ctime
temps de la créationdf -h
du -csh /
df -i
find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n
#/bin/bashsync() {origDir=$1destDir="/media/user/5698f413-4a8d-4213-837e-372d32358a43/${2}"##==== Efface la dixieme sauvegardeif [ -d "${destDir}/home-10" ]; thenecho "Efface le dossier 10";rm -R "${destDir}-10";fi;##==== Remonte le numéro de chacunecho "Remonte les numéro de dossier"for i in {0..9}; doj=$((9-${i}));k=$((${j}+1));if [ -d "${destDir}-${j}" ]; thenmv "${destDir}-${j}" "${destDir}-${k}";fi;done;##=== Verifie l'existence du dossier 1if [ -d "${destDir}-1" ]; then##=== Copie le dossier 1 pour préparation de la mise à jourcp -al "${destDir}-1" "${destDir}-0"fi;##=== Mise à jour du dossierOPTIONS=(-v --recursive --owner --group --force --delete --times);# OPTIONS_PLUS=(--filter '- /home/user' --filter '- /home/root' --filter '- /home/USER.BAK' --filter '- /home/android' --filter '- /home/Android');OPTIONS_PLUS=(--exclude='user' --exclude='Android' --exclude='android' --exclude='USER.BAK');rsync "${OPTIONS[@]}" "${OPTIONS_PLUS[@]}" ${origDir}/* ${destDir}-0/return 0;}sync "/home" "home"sync "/etc" "etc"sync "/root" "root"sync "/media/user/sauv1/photo" "photo"sync "/media/user/sauv2/Musique" "Musique"
stat -C %Z
stat -c %X fichier
stat -c %Y fichier
tunefs -c 1 /dev/sda1
forcefsck
à la racine du système (fichier /forcefsck)./etc/init.d/checkfs.sh
" qui s'occupe de vérifier la présence de ce fichier et lance la vérification des partitions.ls -i
find . -inum xxxx
find . -inum xxx -delete
dd if=/dev/sda1 of=/dev/zero bs=1M count=400 iflag=direct
dd if=/dev/zero of=/dev/sda1 bs=1M count=400 skip=1000 oflag=direct
hdparm -W0 /dev/sda
On peut désactiver l'utilisation de cache dans le système par :sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
cryptsetup
permet de crypter un système de fichiers. Voici la procédure à effectuer pour crypter et monter manuellement la partition :cryptsetup luksFormat -c aes -h sha256 /dev/hda7
: code la partitioncryptsetup luksAddKey /dev/hda7
: ajoute une clécryptsetup luksDump /dev/hda7
: vérifie le statuscryptsetup luksOpen /dev/hda7 crypthome
: monte le cryptage dans un périphériquels /dev/mapper
mkfs.ext4 /dev/mapper/crypthome
: formate de la partitionmount -t ext3 /dev/mapper/crypthome /mnt/
: monte la partition/dev/mapper/crypthome /home ext4 defaults,errors=remount-ro 0 2
crypthome UUID=23a43730-4ce4-4deb-b81d-e8fdcd100397 none luks,timeout=120
## Cr\'eation d'un fichier de 40Modd if=/dev/zero of=/home/partVirt.img bs=1K count=40960## Formatage de la partition##-F force la cr\'eation ; -m 0 pas d'espace r\'eserv\'e pour rootmkfs -t ext2 -F -m 0 /home/partVirt.img## Monter le syst\\`\null{}eme de fichiersmount /home/partVirt.img /mnt -o loop
dd if=/dev/zero of=//home/virtualDD bs=1M count=100losetup -fP /home/virtualDDlosetup -alosetup -d /dev/loop0
mount
ou le fichier /etc/fstab), on peut indiquer des "options" qui influenceront l'usage de la partition par le système.defaults
: utilise les options par défaut :rw,suid,dev,exec,auto,nouser,async
ro
monte le système en lecture seulerw
monte le système en écrituresuid
il permet d'utiliser le "setuid bit
" d'un fichiernosuid
il désactive le "setuid bit
" d'un fichierdev
exec
auto
indique que le système de fichiers sera monté au lancement de la commande mount -a
user
permet à tout utilisateur de monter ce système de fichiers à la demandenouser
indique que seul le super-utilisateur root peut monter la partitionasync
strictatime
: enregistre le temps d'accès à chaque foisnoatime
: désactive l'enregistrement du temps d'accèsnodiratime
: désactive l'enregistrement du temps d'accès que pour les dossiersrelatime
: modifie l'accès-temps sous certaines condition optimisant l'écriture sur le disquelazytime
: garde dans la mémoire vive les changement de temps d'accès optimisant au maximum l'accès en écriture au disque. L'écriture se fera toutes les 24h ou sous certaines conditions.mount -t ntfs-3g /dev/sda1 /mnt -o uid=1000,gid=1002
mount -t ntfs-3g /dev/sda1 /mnt -o umask=760
fmask
et dmask
gèrent les droits respectivement pour les fichiers et les dossiers.mount -t ntfs-3g /dev/sda1 /mnt -o ro
mount -t ext2 /dev/hda1 /mnt/part -o noexec
mount -a
Chaque ligne est composées de 6 champs :dump
fsck
au démarrage. Avec la valeur 0, la partition ne sera pas vérifiée. Avec une valeur différente de zéro, elle sera vérifiée et cette valeur indique l'ordre de vérification : mettre 1 pour la partition racine et 2 pour les autres./dev/sda9 /home ext3 defaults 0 2
umount /dev/sda1
Démonter tous les systèmes de fichiers du périphérique /dev/sdaumount /dev/sda*
Pour forcer un disque dur à être démonté :umount /dev/sdb1 -f -l
Si une partition ne veut pas être démonter, rechercher les processus utilisant cette partitin :lsof | grep /dev/sda1
modprobe isofs
mount -t iso9660 /dev/cdrom /mnt -o loop
modprobe ntfs | grep ntfs
apt-get install ntfs-3g
mkntfs -f /dev/sda1
mkntfs -L nouveauLabel /dev/sda1
ntfsundelete /dev/sda1
ntfsclone
cat /proc/filesystems | grep vfat
apt-get install msdostool
mkdosfs -F 32 /dev/sda1
mkdosfs -c -n "monLabel" /dev/sda1
mkdosfs -C "f.iso" 100
e2label
: modifie le label du système de fichiers.tune2fs
: gère les options du système de fichiers.tune2fs -c 10 /dev/sda1
tune2fs -c 0 /dev/sda1
tune2fs -i 2m /dev/sda1
tune2fs -i 3w /dev/sda1
tune2fs -e remount-ro /dev/sda1
tune2fs -e panic /dev/sda1
tune2fs -U "c1b9d5a2-f162-11cf-9ece-0020afc76f16"
tune2fs -U clear
tune2fs -U random
tune2fs -m 5 /dev/sda1
mkfs.ext4 -p /dev/sda1
mkfs.ext4 -y /dev/sda1
mkfs.ext4 -c -c /dev/sda1
mkfs.ext4 /dev/sda1
mkfs.vfat -L "monLabel" /dev/sda1
dd if=/dev/sda of=/root/sauv.mbr bs=512 count=1
dd if=/dev/zero of=/dev/hda bs=512 count=1
fdisk -l
fdisk /dev/sda
lsof +D /tmp
fsck.ext4 -cDfty -C 0 /dev/sda1
df
df -h
df -i
find /home/aGarder -depth -print | cpio -oaV -O a.cpio
cpio -idv --no-absolute-filename < a.cpio
parted
:parted -a optimal /dev/sdc mkpart primary 3000MB 100
du
permet de connaitre la taille occupée par des fichiers :du -csh *
du -hd1
du -cuhx *
du -hs $(ls -A)
ls -l /dev/disk/by-uuid/
blkid
echo 'blacklist evbug' >> /etc/modprobe.d/disable-evbug.conf
udevadm monitor --env
Pour que### Contenu du fichier /etc/udev/rules.d/85-storage-automount.rulesENV{DEVTYPE}=="partition", RUN+="/lib/udev/storage-automount.sh", ENV{REMOVE_CMD}="/lib/udev/storage-autounmount.sh"### Contenu du fichier /lib/udev/storage-automount.sh#!/bin/sh# set the mountpoint name according to partition or device namemount_point=$ID_FS_LABELif [ -z $mount_point ]; thenmount_point=${DEVNAME##*/}fi# if a plugdev group exist, retrieve it's gid set & it as owner of mountpointplugdev_gid="$(grep plugdev /etc/group|cut -f3 -d:)"if [ -z $plugdev_gid ]; thengid=''elsechown root:plugdev $mount_pointgid=",gid=$plugdev_gid"fi# create the mountpoint directory in /media/ (if not empty)if [ -n $mount_point ]; thenmkdir -p /media/$mount_point/bin/mount -v -t $ID_FS_TYPE -o rw,nosuid,nodev,relatime,uid=1000,gid=33,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisk2 $DEVNAME /media/$mount_pointfi### Contenu du fichier /lib/udev/storage-autounmount.sh#!/bin/sh# set the mountpoint name according to partition or device namemount_point=$ID_FS_LABELif [ -z $mount_point ]; thenmount_point=${DEVNAME##*/}fi# remove the mountpoint directory from /media/ (if not empty)if [ -n $mount_point ]; thenumount -l /media/$mount_pointrm -R /media/$mount_pointfi
udev
puisse monter une partition, il faut dans le fichier /lib/systemd/system/udev.service, il faut modifier le fichier :Quelques explications :[Service]MountFlags=shared
udevadm monitor --env
montre la présence d'un évènement de type "partition"udisks2
sera utilisé pour le montage et démontage de la partition. Le passage des droits passera par polkit
et surtout les deux actions org.freedsktop.udisk2.filesystem-mount-system
et org.freedesktop.udisks2.filesystem-unmount-others
que vous trouverez dans le fichier /usr/share/polkit-1/actions/org.freedesktop.udisk2.policy (certaines des "default action" doivent mises à "yes")lshw -class network
lsmod | grep sp
blacklist pcspkr
xinput
permet d'avoir des informations sur les périphériques d'entrée utilisés par le "X server"xinput list
xinput list-props 13
set-prop
permet de modifier des paramètres d'usage du périphérique.Finger
permet de définir la pression des doigts activant les fonctions. Voici la ligne correspondante :Synaptics Finger (278): 60, 70, 0
xinput set-prop 13 278 30 50 0
Section "Device"Identifier "Card0"Driver "intel"Option "Backlight" "intel_backlight"EndSectionSection "InputClass"Identifier "touchpad catchall"Driver "synaptics"MatchIsTouchpad "on"Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"Option "FingerLow" "30"Option "FingerHigh" "40"EndSection
POWR
Autre code pour pouvoir lancer startx depuis une console, il faut mettre dans le fichier /etc/X11/Xwrapper.confexport DISPLAY=:0export XAUTHORITY=/home/user/.Xauthority
Puis actualiser le packageneeds_root_rights=yesallowed_users=anybody
dpkg-reconfigure xserver-xorg-legacy
killall xfconfd && /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd &killall xfsettingsd && xfsettingsd &
xfdesktop --reload
xfconf-query -c xfce4-keyboard-shortcuts -lv
#! /bin/sh### BEGIN INIT INFO# Provides: perso# Required-Start: $remote_fs $syslog# Required-Stop: $remote_fs $syslog# Default-Start: 2 3 4 5# Default-Stop:### END INIT INFOservice udev restart
update-rc.d -f myscript defaults
dpkg --print-architecture
NetworkManager
permet de gérer "automatiquement" l'usage des interfaces réseau. Sa configuration passe par le fichier /etc/network/interfacesVoici quelques exemples de configurationeth0
iface eth0 inet staticaddress 192.168.51.200netmask 255.255.255.0network 192.168.51.0broadcast 192.168.51.255gateway 192.168.51.1dns-nameservers 41.207.177.1 41.207.160.45dns-search pedagogie.local
iface eth1 inet dhcp
Il faut au préalable installer le packageiface eth0 inet dhcpwireless-essid monPointAcceswireless-channel 11wireless-mode Ad-hocwireless-nic maMachinewireless-key 2345235235wireless-keymode restricted
wireless-tools
iface eth1 inet dhcp
pre-up /root/check-mac-address.sh eth1 AA:BB:CC:DD:EE:FF
post-up /usr/sbin/ethtool -s eth1 wol g
apt-cache
permet d'avoir des informations sur les packages installés sur le système et sur les packages actuellement disponibles dans les dépots :apt-cache search motClef
samba-common
:apt-cache depends samba-common
apt-cache policy
apt-cache policy samba-common
apt-cache madison samba
samba
apt-cache showpkg samba
apt-cache pkgnames
apt
Les serveurs sur internet centralisant les dépots s'appelle des dépôt. On définit les dépots utilisés par un système dans le fichier /etc/apt/source.listdeb http://ftp.fr.debian.org/debian/ jessie main contrib
xxx
est l'architecture de votre ordinateur qui contient la description de l'ensemble des packages disponibles pour ce dépot.Le dossier /var/cache/apt contient des sauvegardes des packages dernièrement téléchargés et installés. Ce dossier peut être effacé pour récupérer de la place sur le système.Une fois mis à jour par la commande apt-get update
, le dossier /var/lib/apt/lists contiendra un fichier par dépot qui est le contenu du fichier Contents-xxx.gzEn cas de problèmes dans l'utilisation des paquets (notamment avec un téléchargement partiel d'une archive), on efface tout le cache :rm /var/lib/apt/lists/*rm /var/lib/apt/lists/partial/*rm /var/cache/apt/archives/*rm /var/cache/apt/archives/partial/*
apt-get
s'occupe de la gestion des packets sur le système :apt-get update
cherche tous les dépots dans le fichier /etc/apt/source.list et met à jour la liste des packages disponibles pour chaque dépot.pack
, on exécute :apt-get install pack
apt-get remove pack
: retire le package du système mais conserve certains fichiers comme les fichiers de configuration ou les fichiers de données liés au packageapt-get purge pack
: retire le package du système et efface tous les fichiers liés au package.apt-get autoremove --purge mysql-server
apt-get update && apt-get upgrade
apt-get source pack
apt-get check
apt
(notamment le dossier /var/cache/apt) :apt-get clean
apt-get --no-install-recommends install xxxx
APT::Install-Suggests "0";APT::Install-Recommends "0";
apt-get install -o Acquire::http::Dl-Limit=50 wxmaxima
apt-get -o Debug::Acquire::http=true update
deb http://ftp.fr.debian.org/debian stretch main contrib non-free
Package: *Pin: release n=stretchPin-Priority: 50
apt
à jour : apt-get update
apt-cache policy emacs
On remarque la priorit\'e de 50 sur le dépot stretchleafpad:Installé : (aucun)Candidat : 0.8.18.1-4Table de version :0.8.18.1-5 050 http://ftp.fr.debian.org/debian/ stretch/main amd64 Packages0.8.18.1-4 0500 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages
apt-get install -t stretch leafpad
dpkg-deb -x pack.deb ./
Pour connaitre l'ensemble des packages installés sur un ordinateur :dpkg --get-selections
set
permet de définir ou de détruire des variables du bashUtiliser toute seule, elle affiche toutes les variables définies dans le bash :set
ipAddress=10.78.90.137;10.78.90.149
Voici comment séparer les IP de cette ligne par des espaces :=`grep -i ipaddress /opt/ipfile | cut -d'=' -f2 | tr ';' ' ')`
cat main.cf | grep -vE '^( *#|^ *$|^$)' > a.txt
nohup
permet de lancer une commande qui restera active même lorsque l'utilisateur ferme sa session.nohup foo.sh [...] >& a.log &
Remarquez l'esperluète (&
) en fin d'instruction qui permet de reprendre la main sur la ligne de commande avant la fin d'exécution de l'instruction.ls | grep "abc"
cat /etc/passwd | grep root | awk -F":" '{print $6}'
ls > a.txt
Redirige la sortie standart (stdout) vers la fin d'un fichier:ls >> a.txt
ls 2> a.txt
ls > a.txt 2> b.txt
ls >& a.txt
ls > a.txt 2>&1
grep
permet de chercher des occurences d'une chaine de caractères à l'intérieur de fichiers.Voici quelques exemples d'utilisation de cette commande :grep root /etc/passwd
grep -i RoOt /etc/passwd
grep -v root /etc/passwd
grep -i root /etc/passwd
grep -e "^root" /etc/passwd
grep -e "root$" /etc/passwd
tr -d "\string\n" < a.txt > b.txt
sed /root/\!d /etc/passwd
Récupère le contenu du fichier a.txt, rajoute une virgule à la fin de chaque ligne et écrit le résultat dans le fichier b.txt :sed 's/\$/,/g' < a.txt > b.txt
ffmepg
(obsolète) et avconv
permettent le traitement de fichier vidéo en ligne de commande.Voici quelques utilisations de ces commandes :ffmpeg -i "$entree" -acodec libmp3lame "${sortie}.mp3"
a=`ls *.mp4`for i in ${a[@]}; doffmpeg -i ${i} -codec:a libmp3lame -qscale:a 2 ${i}.mp3done
ffmpeg -i youtube_raspberry.mp4 -i raspberry.mp3 -map 0:v -map 1:a -c:v copy -c:a aac viaeduc3-raspberry.mp4
/root/bin/ffmpeg -i ${entree} -vcodec libx264 -profile:v baseline -level 3.0 -r ${fps} -crf 30 -vf scale=-1:360 -pix_fmt yuv420p -acodec aac -ab 96k -movflags faststart -y ${sortie}.mp4/root/bin/ffmpeg -i ${entree} -c:v libvpx-vp9 -qmax 40 -qmin 30 -b:v 1M -r ${fps} -pix_fmt yuv420p -g 10 -c:a libvorbis -q:a 4 -f webm -vf scale=-1:360 -movflags +faststart -y ${sortie}.webm
pdftk
permet de gérer certains aspects des fichiers ".pdf"pdftk a.pdf output b.pdf uncompress
vi b.pdf
pstoedit -f mpost a.eps a.mp
TEXMFLOCAL
:TEXMFLOCAL = /home/_data/myLocaltexmfTEXMFVAR = /home/_data/myLocaltexmf
La dernière commande à créer des fichiers. On ajuste les droits des fichiers "ls-R" :update-texmfmktexlsr
chmod 755 /home/_data/myLocaltexmf/ls-R
updmap-sys --enable Map=psfonts.mapupdmap-sys
texlive
. Mais son installation complète prend un peu plus de 3Go.ou alorsapt-get --no-install-recommends install texlive-{base,generic-recommended,,latex-base,latex-recommended}
apt-get --no-install-recommends install texlive-{base,bibtex-extra,generic-recommended,fonts-recommended,font-utils,latex-base,latex-recommended,pictures} texlive-lang-french
host
permet d'avoir des informations sur un nom de domaine :host yahoo.fr
host -a yahoo.fr
nslookup
permet de demander une résolution de noms :nslookup yahoo.fr
nslookup yahoo.fr 8.8.8.8
wget
est un outil de téléchargement. Voici quelques exemples simples d'utilisation :wget http://monsite.fr/a.iso
wget -c http://monsite.fr/a.iso
wget --limit-rate=10k http://monsite.fr/a.iso
wget --read-timeout=50 --tries=5000 http://monsite.fr/a.iso
wget -i liste.url
wget --no-check-certificate http://chingatome/index.php
wget "http://chingatome.net/index.php?p=t%0AC"
wget -r http://monsite.fr/index.html
wget -np -r http://monsite.fr/doc/index.html
wget -r -l 1 http://monsite.fr/index.html
wget -k -r -E -l2 -R "*logout*" --load-cookies=./cookies.txt "http://monsite.fr/doc"
iwevent
permet de visualiser les actions de connection, déconnexion, recherche de réseau effectuées par les cartes réseaux du système.iwlist
fait partie du package iw
. Elle permet d'afficher des informations sur le réseau wifi :iwlist wlan0 scanning
wlan0
:iwlist wlan0 auth
wlan0
:iwlist wlan0 channel
iwconfig
fait partie du package iw
. Un appel sans argument à cette commande affiche des informations sur la carte.On remarquera les informations suivantes :wlan0 IEEE 802.11g ESSID:"ADM"Mode:Managed Frequency:2.462 GHz Access Point: 00:C0:CA:19:79:77Bit Rate=1 Mb/s Tx-Powe27 dBmRetry long limit:7 RTS thr:off Fragment thr:offEncryption key:1111-1111-111-111-1111-1111-11Power Management:offLink Quality=70/70 Signal level=-32 dBmRx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0Tx excessive retries:0 Invalid misc:0 Missed beacon:0
ESSID
: nom du point d'accès auquel on est connectéBit Rate=1 Mb/s Tx-Powe27 dBm
: vitesse de connexion et puissance du signalMode Managed
: une carte wifi peut être initialisée dans les différents états :Managed
: l'interface est alors un client se connectant à des points d'accès.Ad-Hoc
: ce mode permet à deux interfaces à se connecter entre elles directement sans l'intervention d'un point d'accès.Master
: l'interface joue le rôle d'un point d'accès.Secondary
: l'interface joue le rôle d'un autre point d'acc\'es assujeti à un premier.Repeater
: l'interface r\'ep\`ete les signaux pour améliorer la portée du signal.Monitor
: l'interface ne peut que recevoir les paquets {\it(utilis\'e poru l'analyse d'un r\'eseau)}.iwconfig wlan0 mode Managed
ifconfig
permet de configurer les interfaces réseaux de l'ordinateur mais ce n'est pas une commande de bas-niveau. La commande correspondante est ip
.Voici quelques utilisations générale de cette commande :ifconfig
ifconfig -a
eth0
ifconfig eth0
ifconfig eth0 down
et ifconfig eth0 up
eth0
et lui affecter un masque de réseau :ifconfig eth0 192.168.50.1 netmask 255.255.255.0
eth0
:ifconfig eth0 hw ether 00:79:48:BA:AD:31
ifconfig eth0 metric 20 mtu 1500
ifconfig eth0 promisc
ifconfig eth0 promisc
wlx0aabbccddeeff: aborting authentication with .. by local choice (Reason: 3=DEAUTH_LEAVING)
systemd
choisit un nom de carte réseau trop long par exemple wlan0aabbccddeeff.ln -s /dev/null /etc/systemd/network/99-default.link
ssh
, j'utilise la procédure suivante :chrooté
" tout log d'utilisateur du groupe "groupUtilisateurs"Match Group groupUtilisateursChrootDirectory /home/utilisateursX11Forwarding noAllowTcpForwarding no
./debian/rules binary
jk-init -v -j /home/utilisateurs limitedshell basicshell rsync scp
rsync
Remarque: dans le fichier "/etc/jailkit/jk_init.ini", j'ai rajouté la device "/dev/null" afin que la commande scp
marcheip
.ip route add 127.0.0.0/8 dev lo scope link
ip link set eth0 up
ip addr add 192.168.0.100/24 dev eth0
ip route add 192.168.0.0/24 dev eth0
ip route add default via 192.168.0.254
nameserver 8.8.8.8
arp
du système :ip -s -s neigh flush all
netstat -pant | grep :80 | awk '{ print $5}' | cut -d: -f1 | \sort | uniq -c | sort -n
route del -net 0.0.0.0 gw 192.168.178.1 netmask 0.0.0.0 dev eth0
wireshark
permet de capturer des trames ip du noyau.Voici quelques configurations de capture :maceth.addr==18:a6:f7:a6:17:14
#!/usr/bin/env pythonimport osimport subprocessimport reimport threadingregex = re.compile(r"(?P\d+) received") class Ping(threading.Thread):def __init__(self, hostname):threading.Thread.__init__(self)self.hostname = hostnamedef run(self):p = subprocess.Popen(["ping", "-c1", "-w100", self.hostname], stdout=subprocess.PIPE).stdout.read()r = regex.search(p.decode())try:if(r.group("received") == "1"):print("L'adresse %s existe!" % self.hostname)except:passfor i in range(254):hostname = "192.168.0.%i" % (i+1)background = Ping(hostname)background.start()
ipconfig flushdns
squid
:squid -k shutdown
: éteint le serveurrm -rf /home/squid
: efface le contenu du dossier du cachesquid -z
: relance la création du cachesquid
:squid -k parse
squid -k check
squid
:tail -f /var/log/squid/access.log | awk '{print $3 " " $4 " " $7}'
lsof
permet de connaitre tous les fichiers utilisés ou ouvert dans le système :-i4
permet de ne sélectionner que les connexion ouverte en ipv4 :lsof +M -i4
nmap
est un scanner de port. IL permet de tester l'ouverture ou la fermeture d'un port sur une machine.Voici quelques exemples d'utilisation de cette commadne :nmap -sP 192.168.51.0/24
: teste la présence de machine allumé dans le réseau 192.168.51.0/24.nmap -sS 192.168.51.1
: teste tous les ports TCP
sur la machine 192.168.51.1.nmap -sU 192.168.51.1
: teste tous les ports TCP?UDP
sur la machine 192.168.51.1.nmap -p 1-5000 192.168.51.1
: teste les ports de $1$ \`a $5000$ sur la machine 192.168.51.1nmap -T Aggressive -A -v 127.0.0.1 -p 1-5000
: methode de scan agressive pour tester l'ouverture de port et le programme à l'écoute.ntpdc -n -c monlist 95.142.161.42 or ntpq -c rv 10.8.0.1
ntpdate -s 10.0.0.4
cat /proc/net/nf_conntrack
Voici l'exemple d'une de ses lignes :Chaque ligne de cette table est composée de 22 champs ; Voici quelques éléments important :ipv4 2 tcp 6 4316 ESTABLISHED src=10.0.2.115 dst=193.194.74.19 sport=40318 dport=61661 packets=8 bytes=420 src=193.194.74.19 dst=192.168.0.253 sport=61661 dport=40318 packets=1 bytes=40 [ASSURED] mark=0 zone=0 use=2
tcp 6 4316 ESTABLISHED
: c'est une connexion tcp qui a le statut "établie", elle restera active 4316 secondes. A la moindre activité de cette connexion, le temps restant sera réinitialisé à la valeur par défaut.src=10.0.2.115 dst=193.194.74.19 sport=40318 dport=80 packets=8 bytes=420
: la connexion a été initialisé par 10.0.2.115 par son port 40318 à destination de 193.194.74.19 sur son port 80.src=193.194.74.19 dst=192.168.0.253 sport=61661 dport=40318 packets=1 bytes=40
: la destination a répondu à la passerelle 192.168.0.253 sur son port 40318.mark=0
: permet de savoir si la connexion est marquée.conntrack
pour manipuler rapidement cette table :conntrack -F
: permet d'effacer la table de routageconntrack -L -s 10.0.2.115 | wc -l
: permet de connaitre le nombre de connexion initié par l'hote 10.0.2.115traceroute
permet de connaitre le chemin effectuer par un paquet lors du passage de switch et de router. Son fonctionnement est basé sur le TTL des paquets ICMP dans le protocole IP.traceroute woezon.net
A noter également la commande tcptraceroute
netselect -vv ftp.debian.org ftp.fr.debian.org
ethtool
permet de paramétrer une carte éthernet.ethtool -s eth0 wol g
ethtool -i wlan0 | grep driver
95.142.161.42
Sous Debian, le système nsswitch
détermine la manière où cette résolution de noms sera faite. Plus précisement, la ligne suivante du fichier /etc/nsswitch.conf :hosts: files dns
adresseIp nomHote alias1 alias2
localhost
" à la machine locale :127.0.0.1 localhost
Le fichier /etc/resolv.conf permet de définir les serveurs DNS utilisés dans le système. Voici un exemple de ce fichier :Deux serveurs (192.168.51.1 et 41.207.177.17) sont utilisés et si un nom n'est pas résolu, on lui rajoutera le nom de domaine "admin.lfl" pour une nouvelle recherche.nameserver 192.168.51.1nameserver 41.207.177.17search admin.lfl
route
permet d'afficher la table de routage du système. En voici un exemple :Chaque ligne est composée de 8 champsLorsqu'un paquet est émis par l"ordinateur à destination de l'adresseTable de routage IP du noyauDestination Passerelle Genmask Indic Metric Ref Use Ifacedefault 192.168.50.1 0.0.0.0 UG 1024 0 0 wlan0192.168.50.0 * 255.255.255.0 U 0 0 0 wlan0
xxx.yyy.zzz.ttt
, la table de routage est parcourue du bas vers le haut pour déterminer la "route" utilisée par ce paquet. Dès qu'une ligne est "vérifiée", l'adresse mac de la passerelle sera utilisée pour router le paquet.Voyons quand une ligne est vérifiée : le masque Genmask (champ 3) est appliqué à l'adresse de destination xxx.yyy.zzz.ttt
, si celle-ci est maintenant égale à l'adresse de Destination (champ 1).Voici quelques autres astuces sur la table de routage :route -n
ip route flush table main
ip route get 8.8.8.8
iptables -L --line-numbers
iptables INPUT -D 3
iptables
s'effacent à cnaque redémarrage. Pour sauvegarder la configuration :iptables-save > a
iptables-restore < a
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Windows REgistry Editor Version 5.00[HKEY_USERS\xxx\Software\Policies\Microsoft\Internet Explorer\Restrictions]"NoSelectDownloadDir" = dword:00000001"NoFindFiles" = dword:00000001"NoBrowserContextMenu" = dword:00000001"NoBrowserClose" = dword:00000001"NoNavButtons" = dword:00000001"NoFileNew" = dword:00000001"NoFileOpen" = dword:00000001"NoBrowserSaveAs" = dword:00000001"NoPrinting" = dword:00000001"DisableImportExportFavorites" = dword:00000001"NoViewSource" = dword:00000001"NoTheaterMode" = dword:00000001"NoFavorites" = dword:00000001"RestGoMenu" = dword:00000001"NoBrowserOptions" = dword:00000001"NoOpeninNewWnd" = dword:00000001[HKEY_USERS\xxx\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]"DisableLocalMachineRun" = dword:00000001"DisableLocalMachineRunOnce" = dword:00000001"DisablePersonalDirChange" = dword:00000001"DisallowCpl" = dword:00000001"NoComputersNearMe" = dword:00000001"NoControlPanel" = dword:00000001"NoDriveAutoRun" = dword:000000ff"NoDriveTypeAutorun" = dword:000000ff"NoHardwareTab" = dword:00000001"NoPropertiesRecycleBin" = dword:00000001"NoRunasInstallPrompt" = dword:00000001"NoSimpleStartMenu" = dword:00000001"NoSetTaskbar" = dword:00000001"NoWindowsUpdate" = dword:00000001"RestrictCpl" = dword:00000001"StartMenuLogOff"[HKEY_USERS\xxx\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]"Hidden" = dword:00000000"HideFileExt" = dword:00000001"HideIcons" = dword:00000000"SuperHidden" = dword:00000000"IconsOnly" = dword:00000000"ShowsSuperHidden" = dword:00000000[HKEY_USERS\xxx\Software\Microsoft\Windows\CurrentVersion\Policies\Network]"NoEntireNetwork" = dword:00000001[HKEY_USERS\xxx\Software\Microsoft\Windows\CurrentVersion\Policies\System]"Disable Change Password" = dword:00000001"DisableRegistryTools" = dword:00000001"DisableTaskMgr" = dword:00000001"HideLegacyLogonScripts" = -"HideLogoffScripts" = -"HideLogonScripts" = -"Shell" = -[HKEY_USERS\xxx\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]"RunLogonScriptSync" = dword:00000000[HKEY_USERS\xxx\Software\Policies\Microsoft\Windows\Installer]"AlwaysInstallElevated" = dword:00000001
pdbedit
permet de gérer la base de données tdbsampdbedit -L
: affiche tous les utilisateurs Sambapdbedit -v thomas
: affiche des informations sur l'utilisateur thomaspdbedt -a newuser
: ajoute un nouvel utilisateurSamba.pdbedt -a -m newcomputer
: ajoute un nouvel ordinateurSamba.pdbedit -r -u th.castanet -c "[D]"
pdbedit -r -u th.castanet -c "[ ]"
pdbedit -v guest
:Voici une explication de la ligneUnix username: guestNT username:Account Flags: [U ]User SID: S-1-5-21-1188356786-600583981-140535690-1002Primary Group SID: S-1-5-21-1188356786-600583981-140535690-513Full Name:Home Directory: \\serveuradmin\guestHomeDir Drive:Logon Script:Profile Path: \\serveuradmin\guest\profileDomain: SERVEURADMINAccount desc:Workstations:Munged dial:Logon time: 0Logoff time: neverKickoff time: neverPassword last set: lun., 07 juin 2010 22:37:10 CESTPassword can change: lun., 07 juin 2010 22:37:10 CESTPassword must change: neverLast bad password : 0Bad password count : 0Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Account Flags :
testparam
: cet utilitaire permet de tester l'intégrité du fichier smb.confsmbstatus
: affiche les connexions actives au serveurnmblookup
nmblookup pc-7
nmblookup -A 192.168.51.230
nmblookup -M -
findsmb
intérroge le voisinage local pour avoir le nom Netbios et l'IP des ordinateurs connectés au groupe de travail.smbtree
: permet de lister les partages sur un serveur.net
:net SAM SET PWDMUSTCHANGENOW root yes
: oblige l'utilisateur root à changer son mot de passe à la prochaine exécutionnet user INFO c.wilson
: pour connaitre les informations de l'utilisateur c.wilsonnet getlocalsid
: affiche le SID du domainenet setlocalsid S-1-5-21-20043454-3907201459-4213964173
: change le SID du docmainetdbbackup
permet de faire la sauvegarde de la base de données tdbsam
.smbclient
s'installe sous Debian via la commande :apt-get install smbclient
Voici quelques exemples d'utilisation :smbclient -L=//192.168.51.253
smbclient -Uroot //192.168.51.2/admin
admin
du serveur.recursive
: active/desactive le parcours de sous-répertoire par une commandeprompt
: active/désactive la demande de confirmation de copie d'un fichiermput *
: copie l'intégralité d'un dossier local (d'où on s'est loggué sous smbclient
) dans le dossier courant exploré par smbclient
groupadd adminsDomainegroupadd usersDomainegroupadd invitesDomainegroupadd machinesDomainenet groupmap add rid=512 ntgroup="Administrateurs du domaine" unixgroup=adminsDomainenet groupmap add rid=513 ntgroup="Utilisateurs du domaine" unixgroup=usersDomainenet groupmap add rid=514 ntgroup="Invites du domaine" unixgroup=nogroup #desactive ce comptenet groupmap add rid=515 ntgroup="Machines du domaine" unixgroup=machinesDomaine
net groupmap list
useradd -d /var/lib/samba -s /bin/false cdi-0$
pdbedit -m -a cdi-0
add machine script
, add user script
, add group script
delete machine script
, delete user script
, delete group script
.Ce lecteur réseau sera accessible via l'adresse \\nomServeur\Lecteur Eleve[Lecteur Eleve]comment = Dossier de partagepath = /home/lecteurs/eleve/%Uvalid users = @eleveforce group = elevebrowseable = yesread only = nowriteable = yeswide links = yescreate mask = 0700force create mode = 0700inherit owner = yeshide dot files = yeshide files = /RECYCLER/$RECYCLE.BIN/
path = /home/lecteurs/eleve/%U
: définit le dossier linux qui sera pointé par ce partagevalid users = @eleve
: seul les utilisateurs appartenant au groupe eleve seront autorisés à accéder à ce dossierforce group = eleve
: toute création de fichier se verra attribuer le groupe elevebrowseable = yes
: permet à ce partage d'être listé dans l'ensemble des partages délivrés par le serveur Sambaread only = no
: en lecture seule?writeable = yes
: accès en écriture ?wide links = yes
: les liens linux seront suivis au cours du parcours de ce partagecreate mask = 0700
: masque sur les permissions des fichiers lors de leur créationforce create mode = 0700
: ce paramètre est appliqué après l'application du paramètre create mask
et attribue les bits de cette valeur octale dans les permissions du nouveau ficheir.inherit owner = yes
: les fichiers créés auront pour propriétaire l'utilisateur courant.hide dot files = yes
: cache les fichiers dont le nom commence par un point (fichiers cachés de linux)hide files = /RECYCLER/$RECYCLE.BIN/
: ces fichiers ou dossiers ne seront pas affichés et accessible par les clientsman smb.conf
" fait plus de 8000 lignes, il n'est pas question ici d'être exhaustif, voici quelques paramètres utilisées :workgroup = liberte.peda
: définit le nombre du groupe de travail ou du domaine utilisénetbios name = serveurpeda
: définit le nom netbios de la machineserver string = Serveur Liberte
: nom de la machine affichéesecurity = domain
: avec cette valeur, votre serveur samba se transforme en un controleur de domaines et les machines utilisant le serveur doivent être inclus dans le domaine.user
fait fonctionner Samba comme un serveur de fichiers, les machines ne sont pas obligées d'avoir joint le domainemap to guest = Bad User
: lorsque l'authentification Samba réussit mais lorsque le système Linux ne trouve pas l'utilisateur lié, le log peut être rejeter ou transférer vers le compte invitéguest ok = no
: permet d'autoriser la connexion au serveur sans mot de passe. L'utilisateur se voit alors attribuer l'identité définit par le paramèetre "guest account = nobody
"encrypt passwords = true
: code ou non les mots de passe en mémoire.unix password sync = no
: lorsqu'un utilisateur change son mot de passe (Samba), ce paramètre permet de définir si le système Linux essaye de changer ou non le mot de passe de l'utilisateur linux associé.obey pam restrictions = no
: demande de suivre la procédure d'authenficiation voulue par PAM (désactivé si encrypt passwords = true
). A voir aussi l'incidence sur pam password change = no
:dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd
: permet d'interdire le parcours de ces dossiers par les clients Samba. Ils seront montrés comme vide.usershare allow guests = no
: les partages des utilisateurs sont-ils accessibles par des clients sans authentificationunix extensions = no
: pour les clients linux, si ce paramètre est activé sur le serveur et le client, le parcours des liens s'effectuera sans problème.load printers = no
: demande au serveur Samba ne pas acter comme serveur d'impression. D'autres options liées : printing = bsd
, printcap name = /dev/null
, show add printer wizard = no
, disable spoolss = yes
:debug timestamp = yes
: ajoute le timestamp sur chaque loglog file = /var/log/samba/log.%m
: définit le fichier de log pour chaque utilisateurmax log size = 10000
: définit la taille maximale de chaque fichier de loglog level = 3
: définit le niveau de verbose des fichiers de logsyslog only = no
: définit si les logs des serveurs smbd
et nmbd
se font ou non dans le fichier /var/log/syslog ou dans les fichiers correspondants du dossier /var/log/samba/.syslog = 1
: niveau de verbose pour les messages des serveursname resolve order = wins host bcast
: définit l'ordre par lequel Samba va traduire des noms d'hotes en adresse IPtime server = yes
: autorise les clients a synchroniser leur horlogcase sensitive = no
: les clients window ne sont pas sensibles à la casse et autorisé la sensibilité à la casse peut les empêcher de voir tous les fichiers. Seul les clients linux peuvent avoir un intéret à ce paramètre.preserve case = yes
: si ce paramètre a la valeur no
, alors le default case
sera appliqué pour la création de nouveaux fichiers.default case = lower
: en lien avec preserver case
short preserve case = yes
: cette option ne concerne que la casse des nouveaux fichiers créés dont le nom est de la forme 8.3veto files = /lost+found/aquota.group/
: définit la liste de fichiers non-visible ou non-accessible par le serveur Sambacreate mask = 0744
: définit le masque par défaut lors de la création de fichiers.directory mask = 0750
: définit le masque par défaut lors de la création de dossier.hide dot files = yes
: cache les fichiers dont le nom commence par un point (fichier caché de Linux).follow symlinks = yes
: autorise ou interdit le suivi des liens symboliques de linuxwide links = no
: ce paramètre permet à Samba de cacher ou d'afficher les liens définis sous Linux. Attention, aux failles de sécurité, les clients linux peuvent créer des liens symboliques.domain logons = yes
: ce paramètre permet au serveur d'être utilisé comme serveur d'authentification pour les machines clientes. Le serveur Samba devient un controleur de domaineAvec l'option domain master = yes
, cette commande permet à Samba de fonctionner comme un PDC (Samba Primary Domain Controller). Sinon il fonctionnera comme un BDC (Backup Domain Controller)logon path = \\%L\profiles\%U
: définit le chemin "windows" du dossier personnel de chaque utilisateurlogon drive = Q:
: définit la lettre du lecteur réseau qui sera associé à chaque dossier personnel des utilisateurslogon script = %U.bat
: définit le script à lancer sur la machine cliente lors de la connexion de chaque utilisateurlocal master = yes
: demande au serveur de participer à l'élection "locale" de "master browser" référençant toutes les machines du groupe de travail.domain master = yes
: définit le serveur comme un serveur de domaine pour le groupe workgroup
wins support = yes
: demande à nmbd
de fonctionner comme un WINS serveuros level = 65
: cette option permet de valoriser ou non le serveur Samba lors de l'élection du "master browser"samba
qui installera le serveursamba-clients
qui permet de se connecter à des partages samba notamment par ligne de commandecifs-clients
qui permet de montrer des partages samba dans le système LinuxVoici un exemple de ligne de commande montant un partage cifs :mount -t cifs //10.0.0.2/th.castanet /homePoint/th.castanet -o username=th.castanet,domain=liberte.peda,uid=th.castanet,gid=nogroup
smbd
qui est le noyau du serveur : il gère l'authentification des utilisateurs et la gestion des dossiers partégés.nmbd
qui s'occupe de la résolution des noms NETBIOS et joue le rôle du serveur WINSps -A | grep mbd
tdbsam
" (Trivial DataBase for Samba) mais il est également possible d'utiliser d'autres bases de données comme mysql
ou ldap
Important : le serveur Samba est essentiellement un serveur d'authentification et de fichiers. Or, pour qu'un utilisateur accède à un fichier ou à un lecteur réseau via Samba, il faut avoir conscience des deux choses suivantes :[netlogon]
, doit se trouver les deux dossiers :smbcontrol smbd close-share hal
logon home =
et logon path =
getenv group
permet d'avoir des informations sur les groupesHKLM\System\CurrentControlSet\Services\LanmanWorkstation\ParametersHKLM\System\CCS\Services\LanmanWorkstation\ParametersDWORD DomainCompatibilityMode = 1DWORD DNSNameResolutionRequired = 0
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]"requiresignorseal"=dword:00000000"signsecurechannel"=dword:00000000; Do not check for user ownership of Roaming Profile Folders[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]"CompatibleRUPSecurity"=dword:00000001
HKEY_LOCAL_MACHINE\SYSTEM\Software\Microsoft\Windows NT\CurrentVersion\winlogon\"DeleteRoamingCache"=dword:0000000
if not exist H: net use H: \\LINUX\HOMES > nul
wmic UserAccount WHERE "NAME='thomas'" SET PassWordExpires="FALSE"
HKLM\Software\Microsoft\Windows NT\Current Version\ProfileList
isc-server-dhcp
, voici quelques paramètres du fichiers dhcpd.confauthoritative
: permet au serveur d'envoyer des packets DHCPNAK indiquant au client que le serveur fait autorité sur le réseaudefault-lease-time 10800
: le temps par défaut de validiter de l'attribution d'une adresse à un clientmax-lease-time 36000
: temps maximal de validiter d'une adresse attribuer à un clientinterfaces="eth0"
: définit les interfaces sur lesquelles le serveur écoutera.allow unknown-clients
: permet d'accord les clients n'ayant pas de déclaration host
de soumettre des requêtes DHCP.deny unknown-clients;
filename "pxelinux.0"
: définit le fichier de démarrage nécessiare au clientnext-server 10.0.0.2;
: définit le serveur ayant le fichier de démarrageserver-name "10.0.0.2";
: informe le client sur le serveur de démarrageallow booting;
: authorise le serveur à répondre au demande de bootallow bootp;
: authorise le serveur à repondre aux requêtes bootp
ddns-update-style none
ddns-domainname "liberte.peda";
: le suffixe ajouté aux noms des ordinateurs pour former un fully-qualified domain-name (FQDN).ddns-updates off;
: désactive la mise à jour du serveur DNS lorsqu'un nouveau client recoit un nouveau bail DHCP.ignore client-updates;
: n'autorise pas le client à demander la mise à jour de son propre enregistrement DNSVoici quelques explications :subnet 10.0.0.0 netmask 255.255.255.0 {option domain-name-servers 10.0.0.4;option routers 10.0.0.1;option subnet-mask 255.255.255.0;option ntp-servers 10.0.0.4;host user {hardware ethernet 00:04:75:D9:7A:CA; fixed-address 10.0.0.4; }range 10.0.0.100 10.0.0.200;}
domain-name-servers
: définit le serveur DNS utilisés par les clientsrouters
: définit la passerellesubnet-mask
: le masque sous-réseau utilisé par les clientsntp-servers
: définit le serveur temps utilisé par les clientshost
attribuera une "ip fixe" à un ordinateur en fonction de son adresse macnamed-checkconf
et named-checkzone
permettent de vérifier l'intégrité des fichiers de configuration de Bind.Bind
est un serveur DNS. La configuration s'effectue actuellement sur le fichier principal named.conf
dont le contenu est :qui renvoie sur les trois fichiers de configurations. Voici la configuration de mon serveur :include "/etc/bind/named.conf.options";include "/etc/bind/named.conf.local";include "/etc/bind/named.conf.default-zones";
Ici, mon serveur résoudra toutes les requêtes DNS liées au domaine chingatome.net. Les définitions nécessaires se trouvent dans le fichier /etc/bind/chingatomeMasterzone chingatome.net {type master;file "/etc/bind/chingatomeMaster";allow-query { any; };};
L'instructionoptions {directory "/var/cache/bind";forwarders { 8.8.8.8; };dnssec-validation auto;auth-nxdomain no; # conform to RFC1035listen-on-v6 { any; };// PERSOrecursion yes;allow-query { 10.8.0.0/24; };};
forwarders
permet de transformer mon serveur en vrai serveur DNS, les requêtes demandant la résolution pour un nom de domaine différent de chingatome.net seront sous-traitées par le serveur 8.8.8.8 et renvoyé au client.Voici quelques commentaires :$ORIGIN chingatome.net.$TTL 86400@ IN SOA www.chingatome.net. root.chingatome.net. ( 205663 604800 86400 2419200 604800 )@ IN NS www.chingatome.net.www IN A 95.142.161.42chingatome.net. IN A 95.142.161.42dns.chingatome.net. IN A 95.142.161.42smtp.chingatome.net. IN A 95.142.161.42chingatome.net. MX 10 smtp.chingatome.net.* IN CNAME www
205663
correspond à la version de ce fichier. Elle doit être incrémentée à chaque changement pour les autres serveurs DNS se mettent à jour. Les autres nombres définissent les temps de validité des enregistrements.@ IN NS www.chingatome.net.
www IN A 95.142.161.42
www
ne se terminant pas avec un point, elle sera étendu en www.chingatome.net
(avec $ORIGIN
).chingatome.net. MX 10 smtp.chingatome.net.
* IN CNAME www
www.chingatome.net
dig
permet d'avoir des informations sur l'enregistrement DNS d'un nom de domaine :dig woezon.net
MX
du serveur woezon.net :dig MX woezon.net
MX
du serveur woezon.net :dig MX woezon.net +short
NS
du serveur woezon.net :dig NS woezon.net
dig -x 95.142.161.42 +short
dig txt 95.142.161.42 @8.8.8.8
ldif_read_file: checksum error on "/etc/ldap/slapd.d/cn=config/olcDatabase={1}mdb.ldif"
slapdcat
dans un fichier, nommé ici a.ldif, et modifier les noms de l'ancien domaineslapadd -b "dc=my,dc=new,dc=ldap,dc=domain" -v -u -l a.ldif
slapadd -b "dc=my,dc=new,dc=ldap,dc=domain" -v -l a.ldif
LDAP
dans un fichier, on utilise la commande :slapcat
Et avec postfix pour faire une rechercheldap
aux deux lignes passwd
, shadow
et group
:passwd: compat ldapgroup: compat ldapshadow: compat ldap
Apparement les 4 derniers paramètres semblent facultatifs, nsswitch doit rechercher de manière globale '(uid=*)' les utilisateurs.Ne pas oublier :base dc=liberte,dc=pedahost 127.0.0.1#uri ldapi:///127.0.0.1#uri ldap:///127.0.0.1#uri ldaps:///127.0.0.1rootbinddn cn=admin,dc=liberte,dc=pedanss_base_passwd ou=utilisateurs,dc=liberte,dc=pedanss_base_shadow ou=utilisateurs,dc=liberte,dc=pedanss_base_group ou=groupes,dc=liberte,dc=pedanss_map_attribute homeDirectory description
127.0.0.1 localhost serveur.liberte.ped
nscd
met en cache les informations sur les utilisateurs. Pour vider le cache, exécuter la commande :service nscd force-reload
nscd --invalidate=groupnscd --invalidate=hostsnscd --invalidate=passwdnscd --invalidate=netgroup
LDAP
:olcDvIndex : objectClass,uid,memberUid,cn,sambaSID eq
service slapd stopapt-get purge slapdrm -R /var/lib/ldaprm -R /var/lib/sldapapt-get install slapddpkg-reconfigure slapd
/usr/bin/slapd -d 1
LDAP
. Il se trouve à l'adresse /etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldifPour avoir le mot de passe hashé en MD5, on utilise la commande :slappaswd -h {MD5}
Puis, pour le modifier via la ligne de commande :dn: cn=configchangetype: modifydn: olcDatabase={0}config,cn=configchangetype: modifyreplace: olcRootPWolcRootPW: {MD5}nvlMotPassedn: olcDatabase={0}config,cn=configchangetype: modifydelete: olcAccess
ldapmodify -Y EXTERNAL -H ldapi:/// -f rootpw_cnconfig.ldif
slapcat -n0
Apache Directory Studio
, pour accéder à la racine de la configuration du serveur LDAP, il faut :ldapsearch -xLLL -b cn=config -x -D cn=admin,cn=config -W
LDAP
:apt-get install samba slapd samba-doc ldapscripts libnss-ldapd
zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema
include /etc/ldap/schema/core.schemainclude /etc/ldap/schema/cosine.schemainclude /etc/ldap/schema/nis.schemainclude /etc/ldap/schema/inetorgperson.schemainclude /etc/ldap/schema/samba.schema
mkdir tmpd.dslaptest -f samba.conf -F tmp.d/cp "tmp.d/cn=config/cn=schema/cn={4}samba.ldig" "/etc/ldap/slapd.d/cn=config/ch=schema"chmod openldap: "/etc/ldap/slapd.d/cn=config/ch=schema"
ldapsearch -LLLQY EXTERNAL -H ldapi:/// -b cn=schema,cn=config "(objectClass=olcSchemaConfig)" dn
ldapsearch -LLLQY EXTERNAL -H ldapi:/// -b cn=schema,cn=config \string| grep schema \string| grep samba
passdb backend = ldapsam:ldap://serveurpeda.liberte.peda
127.0.0.1 localhost serveur.liberte.peda
smbd -b | grep LDAP
HAVE_LDAP_HHAVE_LDAPHAVE_LDAP_DOMAIN2HOSTLISTHAVE_LDAP_INITHAVE_LDAP_INITIALIZEHAVE_LDAP_SET_REBIND_PROCHAVE_LIBLDAPLDAP_SET_REBIND_PROC_ARGS
smbldap-tools
permet d'automatiser les tâches de population de la base LDAP, de l'ajout ou suppression d'utilisateurs et de la gestion des groupes d'utilisateurs :apt-get install smbldap-tools
cp /usr/share/doc/smbldap-tools/examples/smbldap\_bind.conf /etc/smbldap-tools/
cp /etc/smbldap-tools/ ; gzip -d smbldap.conf.gz
net getlocalsid >> smbldap.conf
SID="xxxxxxxxxxxxxxxxxxxxxxxx
ldapTLS="0"verify="none"sambaDomain="liberte.peda"slaveLDAP="ldap://127.0.0.1/"masterLDAP="ldap://127.0.0.1/"suffix="dc=liberte,dc=peda"usersdn="ou=utilisateurs,\${suffix}"groupsdn="ou=groupes,\${suffix}"computersdn="ou=machines,\${suffix
smbldap-populate
ldap passwd sync = Yes :#LDAPpassdb backend = ldapsam:ldap://serveurpeda.liberte.pedaldap admin dn = cn=admin,dc=liberte,dc=pedaldap suffix = dc=liberte,dc=pedaldap group suffix = ou=groupesldap user suffix = ou=utilisateursldap machine suffix = ou=machinesldap debug level = 1 ### default#ldap debug level = 1#ldap debug threshold = 5ldap idmap suffix =ldap ssl = Off
apache2
en ligne de commande, on exécute le code ci-dessous :Ci-dessus, on affiche les modules installéesVoici les modules installés par défaut sous Debiancd /etc/apache2source envvarsapache2 -M
ls -l
"function modifCaractere($x){$x=str_replace("\xc2\xa0",' ',$x);$x=str_replace("\xc3\x8f",'i',$x);$x=str_replace("\xc3\xa8",'e',$x);$x=str_replace("\xc3\xa9",'e',$x);$x=str_replace("\xc3\xaa",'e',$x);$x=str_replace("\xc3\xab",'e',$x);$x=str_replace("\xc3\x88",'e',$x);$x=str_replace("\xc3\x89",'e',$x);$x=str_replace("\xc3\x8a",'e',$x);$x=str_replace("\xc3\x8b",'e',$x);$x=str_replace("\xc3\x80",'a',$x);$x=str_replace("\xc3\x81",'a',$x);$x=str_replace("\xc3\x82",'a',$x);$x=str_replace("\xc3\x83",'a',$x);$x=str_replace("\xc3\x84",'a',$x);$x=str_replace("\xc3\x85",'a',$x);$x=str_replace("\xc3\x86",'a',$x);$x=str_replace("\xc3\xa0",'a',$x);$x=str_replace("\xc3\xa1",'a',$x);$x=str_replace("\xc3\xa2",'a',$x);$x=str_replace("\xc3\xa3",'a',$x);$x=str_replace("\xc3\xa4",'a',$x);$x=str_replace("\xc3\xa5",'a',$x);$x=str_replace("\xc3\xa6",'a',$x);$x=str_replace("\xc3\x99",'u',$x);$x=str_replace("\xc3\x9a",'u',$x);$x=str_replace("\xc3\x9b",'u',$x);$x=str_replace("\xc3\x9c",'u',$x);$x=str_replace("\xc3\xb9",'u',$x);$x=str_replace("\xc3\xba",'u',$x);$x=str_replace("\xc3\xbb",'u',$x);$x=str_replace("\xc3\xbc",'u',$x);$x=str_replace("\xc3\xbd",'u',$x);$x=str_replace("\xc3\x92",'o',$x);$x=str_replace("\xc3\x93",'o',$x);$x=str_replace("\xc3\x94",'o',$x);$x=str_replace("\xc3\x95",'o',$x);$x=str_replace("\xc3\x96",'o',$x);$x=str_replace("\xc3\xb2",'o',$x);$x=str_replace("\xc3\xb3",'o',$x);$x=str_replace("\xc3\xb4",'o',$x);$x=str_replace("\xc3\xb5",'o',$x);$x=str_replace("\xc3\xb6",'o',$x);$x=str_replace("\xc3\xa7",'c',$x);$x=str_replace("\xc3\x87",'c',$x);return $x;}
ob_end_clean();ignore_user_abort(true);ob_start();/* Code à exécuter et qui sera renvoyé au client */$size=ob_get_length();session_write_close();header("Content-Encoding: none");header("Content-Length: $size");header("Connection: close");ob_end_flush();flush();sleep(2);ob_start();/* Code qui sera exécuté sans que le client ne le sache */
a2enmod headers
Header set Accept-Ranges: "bytes"
telnet
les informations suivantes au serveur :GET /_fichier/sesamath/classeConnect.mp4 HTTP/1.1Host: chingatome.netRange:bytes=1000-1050Accept-Encoding: gzipConnection: close
C'est la méthode utilisée par les logiciels "gestionnaire de téléchargement"curl --header "Range: bytes=0-100" http://192.168.100.1/vide.img -o f.txtcurl --header "Range: bytes=101-200" http://192.168.100.1/vide.img -o f.txtecho "" > fcat f1 f2 >> f
apache
, on installe le module mod_evasive
de la manière suivante :apt-get install libapache2-mod-evasive
mkdir -p /var/log/apache2/evasive
chown -R www-data:root /var/log/apache2/evasive
DOSHashTableSize 3097DOSPageCount 2DOSSiteCount 50DOSPageInterval 5DOSSiteInterval 1DOSBlockingPeriod 10DOSLogDir "/var/log/apache2/evasive"
service apache2 restart
display_errors = On
:error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
:error_log = /var/log/php_errors.log
:disable_functions
: cette commande permet de désactiver des commandes globalement :Voici un exemple pour sécuriser un serveur Apache :Pour personnaliser la liste des commandes interdite par un vhost, on utilise la le patchdisable_functions = chgrp, chmod, chown, disk_free_space, diskfreespace, disk_total_space, dl, escapeshellcmd, exec, get_current_user, getmypid, getmyuid, getrusage, highlight_file, ignore_user_abord, ini_alter, ini_restore, ini_set, leak, link, listen, login, passthru, php_uname, popen, posix_getpwuid, posix_mkfifo, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_setuid, proc_get_status, proc_nice, proc_open, proc_terminate, set_time_limit, shell_exec, show_source, socket_bind, socket_listen, system, virtual
suhosin
: avec le paramètre suhosin.executor.func.blacklist
dans le fichier .htaccessmysqlcheck -uroot -pxxx --all-databases
: vérifie l'intégrité de l'ensemble des bases de donnéesmysqlrepair -uroot -pxxx --all-databases
: réparer toutes les basesmysqladmin -u root password 'nnn'
: change le mot de passe de l'utilisateur root
mysql
permet de se logguer à un serveur MYSQL pour y exécuter des commandes. Voici la syntaxe pour se connecter au serveur MYSQL local :mysql -uroot -pmypassword
mysql -h 192.168.51.200 -uroot -pmypassword
Voici quelques exemples de séquences d'instructions en ligne de commande :Le mot clé "%" permet à l'utilisateur de se connecter de partout. A l'inverse, si on remplace par "localhost", la connexion au serveur MYSQL par cet utilisateur ne pourra se faire que localement.CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_bin;CREATE USER 'myuser'@'%' IDENTIFIED BY 'xys';SET PASSWORD FOR 'myuser'@'%' =PASSWORD("mon_mot_passe");GRANT ALL ON mydb.* TO 'myuser'@'%';GRANT ALL ON mydb TO 'myuser'@'%';GRANT CREATE ON mydb TO 'myuser'@'%';FLUSH PRIVILEGES;
SET PASSWORD FOR 'utilisateur'@'%' = PASSWORD("sdfsdf");
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;FLUSH PRIVILEGES;
SELECT User,Host FROM mysql.user;ouUSE mysql;SELECT User,Host FROM user;
DROP DATABASE mydb
DROP USER myUser
ALTER TABLE `exo_stats` AUTO_INCREMENT = 269
mysql -e "source e.sql" -uroot
Parfois, il est intéressant de connaitre la ligne de commande de lancement d'un serveur pour le débugguer manuellement. Voici la commande sous Debian 8 :/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
account castanetTLShost chingatome.frprotocol smtpport 465auth logintls ontls_certcheck ontls_starttls offtls_trust_file ~/chingatome.fr.crtfrom castanet@chingatome.fruser castanetpassword xxxxxaccount castanethost chingatome.frprotocol smtpport 587auth logintls ontls_certcheck ontls_starttls ontls_trust_file /home/user/chingatome.fr.crtfrom castanet@chingatome.fruser castanetpassword xxxxx
echo "br, je viens d'un autre compte" | msmtp -va castanet th.castanet@gmail.com
sendmail_path = "/usr/bin/msmtp -a castanetTLS -t -C /home/user/.msmtprc"
postfix
est un serveur de mail : il permet d'envoyer des mails et attend pour recevoir des mails.dovecot
permet à un client de parcourir sa boite mail.postfix
utilisant seulement les comptes linux.Voici mon fichier configuration /etc/postfix/main.cfg:Voici la configuration du fichier /etc/postfix/master.cfgcommand_directory = /usr/sbindaemon_directory = /usr/lib/postfixdata_directory = /var/lib/postfixmyhostname = dns.chingatome.netmydomain = chingatome.netmyorigin = $mydomaininet_interfaces = allmydestination = $myhostname localhost.$mydomain localhost $mydomainunknown_local_recipient_reject_code = 550mynetworks = 10.8.0.1, 95.142.161.42, 127.0.0.0/8, [::ffff:127.0.0.0]/104, [::1]/128relay_domains = $mydomainhome_mailbox = Maildir/smtpd_banner = chingatome.net ESMTP postfix (Debian/GNU)debugger_command =PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/binddd $daemon_directory/$process_name $process_id & sleep 5setgid_group = postdropinet_protocols = ipv4smtpd_tls_cert_file=/etc/ssl/certs/mail.crtsmtpd_tls_key_file=/etc/ssl/private/mail.keysmtpd_use_tls=yessmtpd_tls_auth_only=yessmtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, defer_unauth_destinationsmtpd_sasl_type = dovecotsmtpd_sasl_path = private/authsmtpd_sasl_auth_enable = yesasmtpd_sasl_local_domain = $mydomainbroken_sasl_auth_clients = yessmtp_destination_concurrency_limit = 2smtp_destination_rate_delay = 180ssmtp_extra_recipient_limit = 10~
# ==========================================================================# service type private unpriv chroot wakeup maxproc command + args# (yes) (yes) (yes) (never) (100)# ==========================================================================smtp inet n - - - - smtpd-o smtpd_tls_security_level=encrypt-o smtpd_sasl_auth_enable=yes
apt-get install dovecot-core dovecot-imapd
service auth {...unix_listener /var/spool/postfix/private/auth {mode = 0666user = postfixgroup = postfix}...}
disable_plaintext_auth = yes
auth_mechanisms = plain login
auth_username_format = %n
mail_location = maildir:~/Maildir/
mail_privileged_group = mail
ssl = required
ssl_cert = </etc/ssl/certs/mail.crt
ssl_key = </etc/ssl/private/mail.key
ldap
:virtual_mailbox_base = /home/maildirvirtual_mailbox_domains = myisn.frvirtual_minimum_uid = 100virtual_gid_maps = static:5000virtual_uid_maps = static:5000virtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cfsmtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destinationmyhostname = smtp.myisn.fralias_maps = hash:/etc/aliasesalias_database = hash:/etc/aliasesmyorigin = /etc/mailnamemydestination = smtp.myisn.fr, localhost.ovh.net, localhostrelayhost =mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
server_host = 127.0.0.1version = 3search_base = ou=user,dc=myisn,dc=frquery_filter = (&(objectClass=inetOrgPerson)(mail=%s))result_attribute = uidbind = yesbind_dn = cn=admin,dc=myisn,dc=frbind_pw = aaaaa
hosts = localhostdn = cn=admin,dc=myisn,dc=frdnpass = aaaaaauth_bind = yesldap_version = 3base = ou=user,dc=myisn,dc=fr
#!include auth-system.conf.ext#!include auth-sql.conf.ext!include auth-ldap.conf.ext#!include auth-passwdfile.conf.ext#!include auth-checkpassword.conf.ext#!include auth-vpopmail.conf.ext#!include auth-static.conf.ext
ssl = yes
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
mail_location = mbox:/home/maildir:INBOX=/home/maildir/%u:INDEX=/home/maildir/map/%u
mail_uid = 5000
mail_gid = 5000
passdb {driver = ldapargs = /etc/dovecot/dovecot-ldap.conf.ext}userdb {driver = ldapargs = /etc/dovecot/dovecot-ldap.conf.ext}
tftp-hpa
(client) et tftpd-hpa
(serveur).ps aux | grep tftpd
Voici quelques informations pour finir de monter le serveur PXE :tftptftp> connect 127.0.0.1tftp> status
filename
et next-server 10.0.0.2
où la dernière adresse est celle du serveur tftpd
kbdmap pxelinux.cfg/fr.kbddefault 0display pxelinux.cfg/aff.txtimplicit 0prompt 1timeout 80label 0localboot 0label 1kernel ../Boot/startrom.0append ../bootmgr.exelabel 2kernel ../iso/lubuntu-16-04/casper/vmlinuzappend boot=casper netboot=nfs nfsroot=192.168.50.1:/home/tftpboot/iso/lubuntu-16-04 initrd=../iso/lubuntu-16-04/casper/initrd.lz console-setup/layoutcode=fr quiet splash nomodeset --
Le fichier tftp.remap contenant simplement la ligne suivante :# /etc/default/tftpd-hpaTFTP_USERNAME="tftp"TFTP_DIRECTORY="home/tftpd"TFTP_ADDRESS="0.0.0.0:69"TFTP_OPTIONS="--secure -m /home/tftpd/tftpd.remap"
gr \\ /
net use X: \\10.0.0.2
exportfs -rv
i=1;while IFS= read -r -d $'\0' a; dof=`echo "$a" | awk -F"/" '{print $6}'`cp "$a" "${i}-${f}"i=$((${i}+1))done < <(find /home/_math/_ressource -iname "*.ggb" -print0)
sh -x script.sh
Changer l'extension de fichier#!/bin/bashOLDIFS="$IFS" # save itIFS="" # don't split on any white spacefor file in `ls . `doecho "$file"doneIFS=$OLDIFS # restore IFS
liste=`ls *.htm`;for a in ${liste[@]}; domv $a --outfile "$(basename "${a}" .htm).html";done
perl: warning: Setting locale failed.
Lancer les commandes suivantesAjoutez ces deux lignes dans votre fichier ~/.bashrc :export LANGUAGE=en_US.UTF-8export LANG=en_US.UTF-8export LC_ALL=en_US.UTF-8locale-gen en_US.UTF-8dpkg-reconfigure locales
Puis valider pour la session courante ces changement en lançant l'instruction :export LC_CTYPE=en_US.UTF-8export LC_ALL=en_US.UTF-8
source ~/.bashrc
grep
, on rajoute la ligne suivante dans le fichier ~/.bashrc :export GREP_COLORS='ms=01;33:mc=01;31:sl=:cx=:fn=32:ln=32:bn=32:se=36'