Gérer son serveur

Commandes utiles & Mise à jours

Création/Suppression d'un utilisateur

Si la commande sudo ne fonctionne pas c'est que vous devez l'installer sur votre serveur. Voir le livre Installation de sudo

Création

Pour ajouter un utilisateur sur le serveur :

sudo adduser $USER

Pour mettre un utilisateur avec les droits root :

sudo usermod -aG sudo $USER

Pour se connecter sur l'utilisateur créé :

su $USER

Suppression

Pour supprimer le compte d'un utilisateur il suffit de saisir userdel suivie du nom de l'utilisateur. 

Pour supprimer le compte et le répertoire personnel (/home/$USER) de l'utilisateur, ajouter l'option -r.

Syntaxe:

sudo userdel -r $USER

Pour forcer la suppression de l'utilisateur, utiliser l'option -f(marche même quand l'utilisateur est encore connecté)

Syntaxe:

# -f = force la suppression et -r supprime le dossier "home" de l'utilisateur
sudo userdel -fr $USER

Les commandes utile

Date

Afficher la date 

date

Modifier la date

date --set 16:03:20
# ou
date --set 2021-08-05

Afficher l'historique des commandes

history

Afficher l'historique des connexions

# Tous les logs de connexion au serveur
last

# Les derniers logs pour chaque utilisateur
lastlog

# les logs des tentatives de connexion qui ont échoué
lastb

Afficher les ports utilisés

Pour répertorier tous les ports TCP ou UDP écoutés, y compris les services utilisant les ports et l'état du socket, utilisez la commande suivante :

sudo ss -tunlp

Pour modifier les ports voir le livre Configuration du Firewall pour plus de détails.

Afficher la version OS Linux

cat /etc/debian_version

Afficher l'IP de son serveur

ip addr show

Pour un affichage plus claire :

ip -stats -color -human addr

Connexion a un serveur distant

Connexion à un serveur distant sans l'utilisation de clé SSH. 

ssh username@ip.address

Afficher les services utilisés

sudo service --status-all

Afficher les process en cours

sudo ps aux

Statistique sur les services en cours : 

htop

Afficher les programmes installé

sudo dpkg --list

Afficher les interfaces

ip a

Statistiques réseaux

Afficher les stats sur les interfaces : 

sudo apt install bmon

sudo bmon 
# press q to quit

ou 

sudo apt install cbm

sudo cbm 
# press q to quit

Afficher les stats sur une interface en particulier

sudo tcptrack -i <interface>
# Exemple : 
sudo tcptrack -i eth0

Afficher la taille d'un dossier

sudo du -sh <folder>

# Exemple taille total du dossier
sudo du -sh /backup
> 6,2G	backup

# Exemple taille total des sous-dossiers
sudo du -sh /backup/*
> 21M	backup/database
> 6,2G	backup/docker
> 1,7M	backup/etc
> 4,0K	backup/output.log.gz
> 16K	backup/script
> 616K	backup/ssh

# Exemple taille total trié par taille
sudo du -sh /backup/* | sort -h
> 6,2G	backup/docker
> 21M	backup/database
> 1,7M	backup/etc
> 616K	backup/ssh
> 16K	backup/script
> 4,0K	backup/output.log.gz

Supprimer un service 

Supprime les données, la configuration et toutes les dépendances. 

sudo apt-get -y autoremove --purge <service>

Mettre à jour le Serveur

Mettez à jour la liste des paquets :
sudo apt update
Affichez les paquets pour lesquels une mise à jour est disponible :
apt list --upgradable
Mettez à jour les paquets installés sur le système avec au choix :
sudo apt upgrade

upgade : les paquets seront remplacés par des versions plus récentes, mais sans qu’aucun autre paquet ne soit ajouté ou supprimé. Par exemple, une nouvelle version de Firefox sera installée avec apt upgrade.


sudo apt full-upgrade
full-upgrade : même chose que apt upgrade, mais supprime des paquets si cela est nécessaire pour installer les nouvelles versions des paquets.


Supprimez tous les paquets devenus obsolètes et qui ne sont plus nécessaires :
sudo apt autoremove
Supprimez le cache des paquets qui ne peuvent plus être téléchargés :
sudo apt autoclean

 

Le propriétaire & groupe (fichier/dossier)

Arborescence de démonstration

Pour l'arborescence suivante : 

user@server:~$  ls -al /mnt/demo/
total 5753224
drwxr-xr-x 4 guest guest           4096 14 août  17:14  .
drwxr-xr-x 4 root  root            4096  3 janv.  2022  ..
-rw-r--r-- 1 guest guest             56 14 août  16:16  file-demo.txt
drwxr-xr-x 2 guest guest           4096 28 sept. 11:10  film
drwxr-xr-x 2 guest guest           4096 30 déc.   2021  serie

Explication des différents droits sur un fichier/dossier. 

drwxr-xr-x 2 guest guest           4096 28 sept. 11:10  film

La commande chown

chown [OPTION]... [PROPRIO][:GROUPE] FICHIER.
		    --help     		   afficher l''aide et quitter
	    -v, --verbose          afficher un diagnostic pour chaque fichier traité
    	-R, --recursive        opérer récursivement sur les fichiers et répertoires
            --from=PROPRIO_ACTUEL:GROUPE_ACTUEL
                         	   modifier le propriétaire ou le groupe de chaque fichier dont le propriétaire ou le groupe actuel correspondent à ceux indiqués


Changer le propriétaire d'un fichier/dossier

L'utilisateur guest possède les dossiers et fichiers dans le dossier demo.  Nous voulons changer le propriétaire du fichier file-demo.txt pour mettre l'utilisateur user. Pour ce faire il suffit de faire la commande suivante en tant que super utilisateur. 

# Pour un fichier 
sudo chown user file-demo.txt

# Pour un dossier même commande mais sur le dossier
sudo chown film
# Pour appliquer le chamgement de propriétaire sur les sous-dossiers
# Rajouter le paramêtre -R ==> (-R, --recursive        operate on files and directories recursively)
sudo chown -R film

Par conséquent le propriétaire devient : 

user@server:~$  ls -l f*
-rw-r--r-- 1 user guest             56 14 août  16:16  file-demo.txt
drwxr-xr-x 2 user guest           4096 28 sept. 11:10  film


Changer le groupe d'un fichier/dossier

Pour changer uniquement le groupe du fichier ou dossier c'est la même commande sauf qu'il faut rajouter : devant le nom du groupe. Exemple : 

On veut que le fichier appartiennent au groupe friends, pour se faire nous allons exécuter la commande suivante.

chown :friends file-demo.txt

Ce qui donne les droits suivants :

user@server:~$  ls -l *.txt
-rw-r--r-- 1 user friends           56 14 août  16:16  file-demo.txt
drwxr-xr-x 2 user guest           4096 28 sept. 11:10  film


Changer les deux en même temps

Pour changer le groupe et le propriétaire du fichier / dossier en même temps. Il faut combiner les deux commandes précédentes en une. 

Par exemple pour mettre user en propriétaire du dossier serie et mettre le groupe friends pour ce même dossier nous allons faire la commande suivante : 

chown user:friends serie

Ce qui donne les droits suivants :

user@server:~$  ls -l serie
drwxr-xr-x 2 user friends         4096 30 déc. 2021  serie


Les permissions

Sur les systèmes d'exploitation de type Unix, un ensemble d'indicateurs associés à chaque fichier détermine qui peut accéder à ce fichier et comment il peut y accéder. Ces indicateurs sont appelés permissions ou modes de fichiers, comme dans "mode d'accès". Le nom de la commande chmod signifie "mode de modification". Elle restreint la manière dont on peut accéder à un fichier.

Visualisation des permissions dans la liste des fichiers

user@server:~$  ls -al /mnt/demo/
total 5753224
drwxr-xr-x 4 guest guest           4096 14 août  17:14  .
drwxr-xr-x 4 root  root            4096  3 janv.  2022  ..
-rwxrw-r-- 1 guest friends           56 14 août  16:16  file-demo.txt
drwxr-xr-x 2 guest guest           4096 28 sept. 11:10  film
drwxr-xr-x 2 guest guest           4096 30 déc.   2021  serie
-rwxrw-r-- 1 guest friends  	56 14 août  16:16  file-demo.txt

Voici ce que signifie chaque partie de cette information :

- Le premier caractère représente le type de fichier : "-" pour un fichier ordinaire, "d" pour un répertoire, "l" pour un lien symbolique.
rwx Les trois caractères suivants représentent les permissions du propriétaire du fichier : le propriétaire peut lire, écrire ou exécuter le fichier.
rw- Les trois caractères suivants représentent les autorisations pour les membres du groupe de fichiers. Tout membre du groupe propriétaire du fichier peut lire ou écrire dans le fichier. Le dernier tiret est un caractère de remplacement ; les membres du groupe n'ont pas le droit d'exécuter ce fichier.
r-- Les permissions pour "autres" (tout le monde). Les autres peuvent seulement lire ce fichier.
1 Le nombre de liens matériels vers ce fichier.
guest Le propriétaire du fichier
friends Le groupe auquel appartient le dossier.
56 La taille du fichier en blocs.
14 août 16:16 Le mtime du fichier (date et heure de la dernière modification du fichier).
file-demo.txt Le nom du fichier


La commande chmod

chmod [OPTION]... MODE[,MODE]... FICHIER
			-v, --verbose          afficher un diagnostic pour chaque fichier traité
            -R, --recursive        modifier récursivement les fichiers et répertoires
                --help     		   afficher l''aide et quitter

Les lettres u, g et o signifient "utilisateur", "groupe" et "autre".

Le signe égal ("=") signifie "définir les autorisations exactement comme ceci".

Les lettres "r", "w" et "x" signifient "lire", "écrire" et "exécuter", respectivement. Les virgules séparent les différentes classes de permissions et ne sont pas séparées par des espaces.

Exemple : 

chmod u=rwx,g=rx,o=r myfile

Cette commande donne les droits suivants sur le fichier :

Il existe une commande équivalente en numérique :

chmod 754 myfile

Ici, les chiffres 7, 5 et 4 représentent chacun individuellement les autorisations pour l'utilisateur, le groupe et les autres, dans cet ordre. 

Pour comprendre la valeur de ces trois chiffres, il faut connaitre la valeur des autorisations : 

Donc pour l'utilisateur on combine lire, écrire et exécuter soit 4 + 2 +1 = 7

Pour le groupe lire et exécuter soit 4 + 1 = 5

Et pour les autres seulement lire soit 4 = 4

Pour conclure la combinaison des droits a donner au fichier est 754

Utiliser le rename


L'utilisation de la commande rename peut être dangereuse il faut être très vigilent. 
Dans chaque commande rename on peut utiliser le paramètre -v ce qui permet de simuler la commande et d'afficher le résultat sans affecter réellement les noms des fichiers.

Supprimer un morceau dans le nom des fichiers 

Pour l'arborescence suivante : 

root@server:~/temp$ ls -al
total 11489640
drwxr-xr-x  2 root root       4096  6 oct.  16:46  .
drwxr-xr-x 10 root root       4096  6 oct.  16:39  ..
-rw-r--r--  1 root root 1030864205  6 oct.  16:40 '[Mixouille] Bleach Kai - 16 - L\'ambition d\'un roi - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root  864747494  6 oct.  16:40 '[Mixouille] Bleach Kai - 17 - La mémoire retrouvée - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1032079000  6 oct.  16:41 '[Mixouille] Bleach Kai - 18 - Diversion - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root  865759623  6 oct.  16:41 '[Mixouille] Bleach Kai - 19 - Turn Back the Pendulum - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1383706007  6 oct.  16:41 '[Mixouille] Bleach Kai - 20 - La Bataille de Karakura - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1225670797  6 oct.  16:41 '[Mixouille] Bleach Kai - 21 - La fureur du Hollow - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1058394810  6 oct.  16:41 '[Mixouille] Bleach Kai - 22 - Le roi déchu - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1022939676  6 oct.  16:41 '[Mixouille] Bleach Kai - 23 - Le maître entre en scène - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1106374778  6 oct.  16:41 '[Mixouille] Bleach Kai - 24 - Insurpassable - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root  980618821  6 oct.  16:41 '[Mixouille] Bleach Kai - 25 - Ultime attaque - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1194156473  6 oct.  16:41 '[Mixouille] Bleach Kai - 28 - Shinigami Suppléant - 720p.MULTI.x264.mkv'

On souhaite retirer tous les [Mixouille] dans les noms des fichiers. 

rename 's/\[Mixouille\] //' *.mkv

Note :  \ permet d'ignorer les caractères spéciaux tels que .\/][- et autres.  

Ce qui donne le résultat suivant : 

root@server:~/temp$ ls -al
total 11489640
drwxr-xr-x  2 root root       4096  6 oct.  16:46  .
drwxr-xr-x 10 root root       4096  6 oct.  16:39  ..
-rw-r--r--  1 root root 1030864205  6 oct.  16:40 'Bleach Kai - 16 - L\'ambition d\'un roi - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root  864747494  6 oct.  16:40 'Bleach Kai - 17 - La mémoire retrouvée - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1032079000  6 oct.  16:41 'Bleach Kai - 18 - Diversion - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root  865759623  6 oct.  16:41 'Bleach Kai - 19 - Turn Back the Pendulum - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1383706007  6 oct.  16:41 'Bleach Kai - 20 - La Bataille de Karakura - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1225670797  6 oct.  16:41 'Bleach Kai - 21 - La fureur du Hollow - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1058394810  6 oct.  16:41 'Bleach Kai - 22 - Le roi déchu - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1022939676  6 oct.  16:41 'Bleach Kai - 23 - Le maître entre en scène - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1106374778  6 oct.  16:41 'Bleach Kai - 24 - Insurpassable - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root  980618821  6 oct.  16:41 'Bleach Kai - 25 - Ultime attaque - 720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1194156473  6 oct.  16:41 'Bleach Kai - 28 - Shinigami Suppléant - 720p.MULTI.x264.mkv'

Remplacer un morceau dans le nom des fichiers

On va réutiliser l'arborescence du résultat de la commande précédente. 

On souhaite remplacer ' - ' par un point pour ce faire nous allons effectuer la commande suivante :

rename 's/ \- /./' *.mkv

Ce qui donne le résultat suivant : 

root@server:~/temp$ ls -al
total 11489640
drwxr-xr-x  2 root root       4096  6 oct.  16:46  .
drwxr-xr-x 10 root root       4096  6 oct.  16:39  ..
-rw-r--r--  1 root root 1030864205  6 oct.  16:40 'Bleach Kai.16.L\'ambition d\'un roi.720p.MULTI.x264.mkv'
-rw-r--r--  1 root root  864747494  6 oct.  16:40 'Bleach Kai.17.La mémoire retrouvée.720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1032079000  6 oct.  16:41 'Bleach Kai.18.Diversion.720p.MULTI.x264.mkv'
-rw-r--r--  1 root root  865759623  6 oct.  16:41 'Bleach Kai.19.Turn Back the Pendulum.720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1383706007  6 oct.  16:41 'Bleach Kai.20.La Bataille de Karakura.720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1225670797  6 oct.  16:41 'Bleach Kai.21.La fureur du Hollow.720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1058394810  6 oct.  16:41 'Bleach Kai.22.Le roi déchu.720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1022939676  6 oct.  16:41 'Bleach Kai.23.Le maître entre en scène.720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1106374778  6 oct.  16:41 'Bleach Kai.24.Insurpassable.720p.MULTI.x264.mkv'
-rw-r--r--  1 root root  980618821  6 oct.  16:41 'Bleach Kai.25.Ultime attaque.720p.MULTI.x264.mkv'
-rw-r--r--  1 root root 1194156473  6 oct.  16:41 'Bleach Kai.28.Shinigami Suppléant.720p.MULTI.x264.mkv'


Les packages


 

Lister les packages installé

# List tous les packages installé
apt list --installed 

# List tous les packages installé qui commence par 'ap'
apt list --installed ap*

 

List les packages upgradable 

apt list --upgradeable

Désactiver le login SSH pour root

Afin de sécuriser le serveur, une des bonnes pratiques est de désactiver la connexion à l'utilisateur root via SSH. 

Editer le fichier de config SSH

le fichier se trouve à l'emplacement suivant : /etc/ssh/sshd_config Ouvrir le fichier avec votre éditeur de texte préféré. 

Modifier la permission 

Une fois le fichier ouvert, trouver la ligne #PermitRootLogin value Dé-commenter la ligne pour remplacer la valeur par no .
Ce qui donne le résultat suivant : 

#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

Enregistrer et quitter le fichier. 

Redémarrer le service

Pour que la modification soit prise en compte il est nécessaire de redémarrer le service SSH. 

Vous pouvez redémarrer le service avec une des commandes suivantes : 

La configuration est terminé et appliqué. Il n'est maintenant plus possible de se connecter avec le super utilisateur en SSH.