Gérer son serveur
Commandes utiles & Mise à jours
- Création/Suppression d'un utilisateur
- Les commandes utile
- Mettre à jour le Serveur
- Le propriétaire & groupe (fichier/dossier)
- Les permissions
- Utiliser le rename
- Les packages
- Désactiver le login SSH pour root
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
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
Supprimez tous les paquets devenus obsolètes et qui ne sont plus nécessaires :
sudo apt autoremove
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
- [drwxr-xr-x] Les 8 premiers caractères représentent les droits sur le fichier (Lecture / Écriture / Exécution)
- [2] Le chiffre suivant les 8 premier caractère représente l'équivalent des droits en chiffres
- [guest] Le premier guest représente le propriétaire du fichier/dossier
- [guest] Le deuxième guest représente le groupe propriétaire du fichier/dossier
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 :
- Le propriétaire du fichier peux lire, écrire et exécuter le fichier
- Le groupe peux lire et exécuter le fichier
- Les autre peuvent seulement le lire
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 :
-
4 signifie "lire"
-
2 signifie "écrire"
-
1 signifie "exécuter"
-
0 signifie "aucune permission"
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
renamepeut ê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
rootvia 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 :
-
systemctl restart sshd -
service sshd restart
La configuration est terminé et appliqué. Il n'est maintenant plus possible de se connecter avec le super utilisateur en SSH.