Feat: ajoute le cours sur les systèmes de fichiers et les permissions
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Bertrand Benjamin 2022-11-03 18:19:39 +01:00
parent 18d4bab898
commit 270398bf16
10 changed files with 198 additions and 1 deletions

View File

@ -0,0 +1,176 @@
\documentclass[a4paper,10pt]{article}
\usepackage{myXsim}
\usepackage{minted}
\author{Bertrand Benjamin}
\title{Système d'exploitation - Cours}
\date{octobre 2022}
\pagestyle{empty}
\begin{document}
\maketitle
\setcounter{section}{2}
\section{Système de fichiers}
\subsection{Arborescence et chemin}
Sous les systèmes Linux les fichiers sont représentés sous forme d'arborescence dont voici un exemple ci-dessous.
\begin{center}
\includegraphics[scale=0.7]{./fig/linux-fs}
\end{center}
Les fichiers sont repérés par leur \textbf{chemin}:
\begin{itemize}
\item \textbf{absolu}: c'est à dire depuis la racine.
\item \textbf{relatif}: c'est à dire depuis le répertoire courant.
\end{itemize}
\paragraph{Exemple:}
Supposons que l'on soit dans le répertoire \texttt{/home/user-1} de l'exemple précédent.
\afaire{Donner le chemin relatif et absolu des fichiers \texttt{image.png} puis \texttt{fstab}}
\paragraph{Exemple - correspondance URL et chemin de fichier:}
Dans le configuration du serveur NSI, il y a une correspondance entre le chemin relatif des fichiers à partir de \texttt{public\_html} et l'url d'accès \url{http//192.168.221.206/~USER/}.
Correspondance
\begin{center}
\begin{tabular}{p{0.45\textwidth}|p{0.45\textwidth}}
Système de fichier & Url \\
\hline
\url{/home/USER/public_html/mapage.html} & \\
\hline
& \url{http//192.168.221.206/~USER/asset/image.jpg} \\
\hline
\url{/home/USER/mapage.html} & \\
\hline
& \url{http//192.168.221.206/~USER/../password} \\
\hline
\end{tabular}
\end{center}
\afaire{Compléter le tableau}
\pagebreak
\subsection{Droits et permissions}
\begin{definition}[ Utilisateur et groupe ]
Linux est un système d'exploitation multi-utilisateur. C'est à dire qu'il est capable de faire cohabiter plusieurs utilisateurs et de leur donner des droits appropriés.
L'utilisateur \textbf{root} est le superutilisateur, il peut faire absolument tout ce qu'il veux sur le système. Les autres utilisateurs sont définis dans le fichier \url{/etc/passwd}.
Chaque utilisateur est membre d'un groupe. La liste des groupes est définis dans le fichier \url{/etc/group}. Pour connaître les groupes auquel on appartient, on peut utiliser la commande \mintinline{bash}{groups}.
\end{definition}
\begin{definition}[ Droits et permissions ]
Sur les systèmes linux, tout est fichier. L'accès aux fichiers permet de définir ce que l'utilisateur ou le groupe aura le droit de faire.
À chaque fichier est attribué les éléments suivants
\begin{multicols}{2}
Trois catégories d'accès
\begin{itemize}
\item le propriétaire (ou \textit{owner}) noté \texttt{u}
\item le group (ou \textit{group}) noté \texttt{g}
\item les autres (ou \textit{other}) noté \texttt{o}
\end{itemize}
Trois niveaux d'accès
\begin{itemize}
\item lecture noté \texttt{r} (read)
\item écriture noté \texttt{w} (write)
\item exécution noté \texttt{x} (execute)
\end{itemize}
\end{multicols}
Ces attributs sont accessibles par la commande \mintinline{bash}{ls -l}.
\end{definition}
\paragraph{Exemple}
\begin{center}
\begin{minipage}{0.8\linewidth}
\inputminted[bgcolor=base3]{bash}{./annexes/3B_ls.shell}
\end{minipage}
\end{center}
\begin{multicols}{2}
Pour le fichier \texttt{config.yml}
\begin{center}
\begin{tabular}{|c|p{1cm}|c|c|c|}
\hline
& Qui & Lecture & Écriture & Execution \\
\hline
propriétaire & & & & \\
\hline
groupe & & & & \\
\hline
autres & & & & \\
\hline
\end{tabular}
\end{center}
Pour le fichier \texttt{script.sh}
\begin{center}
\begin{tabular}{|c|p{1cm}|c|c|c|}
\hline
& Qui & Lecture & Écriture & Exécution \\
\hline
propriétaire & & & & \\
\hline
groupe & & & & \\
\hline
autres & & & & \\
\hline
\end{tabular}
\end{center}
\end{multicols}
\afaire{compléter les tableaux}
\paragraph{Remarque:} l'utilisateur \texttt{root} pourra toujours faire tout ce qu'il veut sur tous les fichiers.
\subsection{Changer les droits}
Pour changer le propriétaire d'un fichier, on utilise la commande
\begin{center}
\begin{minipage}{0.8\linewidth}
\inputminted[bgcolor=base3]{bash}{./annexes/3B_chown.shell}
\end{minipage}
\end{center}
Pour changer les droits d'un fichier, on utilise la commande
\begin{center}
\begin{minipage}{0.8\linewidth}
\inputminted[bgcolor=base3]{bash}{./annexes/3B_chmod.shell}
\end{minipage}
\end{center}
\paragraph{Exemples}
\begin{enumerate}
\item Commande ajoutant les droits d'écriture au groupe. \\
\item Commande enlevant les droits d'écriture et de lecture aux autres. \\
\item Commande enlevant les droits de lecture au groupe et aux autres. \\
\end{enumerate}
\afaire{Proposer une commande}
\paragraph{Remarque:} l'option \texttt{-R} permet d'appliquer la règle à tous les fichiers contenus dans un répertoire.
\end{document}

View File

@ -0,0 +1 @@
chmod [ugo][+-=][rwx] fichier

View File

@ -0,0 +1 @@
chown [PROPRIO][:GROUP] fichier

View File

@ -0,0 +1,6 @@
user@server:$ ls -l
-rw-r--r-- 1 Me users 21 7 sept. 21:25 config.yml
-rw-r--r-- 1 Me users 1037 20 oct. 10:54 docker-compose.yml
drwxr-xr-x 2 root root 4096 7 sept. 18:13 log
-rw-r--r-- 1 Me users 486 7 sept. 18:14 traefik.yml
-rwxrx-r-- 1 Me users 486 7 sept. 18:14 script.sh

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -25,6 +25,13 @@ Elements du programme
Progression
===========
Plan de travail
.. image:: ./plan_de_travail.pdf
:height: 200px
:alt: Plan de travail
Étape 1: système d'exploitation, classe renversée
-------------------------------------------------
@ -44,7 +51,7 @@ Le bilan se fera à partir des diapos commentées et complétées.
Cours: anatomie d'une commande shell
.. image:: ./1B_command_memo.pdf
.. image:: ./2B_command_memo.pdf
:height: 200px
:alt: Commande linux
@ -71,3 +78,9 @@ Exercices techniques sur ordinateur ou au papier.
Étape 4: Gérer les droits
-------------------------
Cours: arborescence et permissions
.. image:: ./3B_fichiers_permissions.pdf
:height: 200px
:alt: arborescence et permissions