\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{sam. août 29 16:30:16 CEST 2015}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={acl},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Listes de contrôle d'accès},
CreationDate={D:20150829163016},
ModDate={D:20150829163016},
Keywords={Linux;acl}
}}
\begin{document}
 
\begin{center}
{\Huge acl }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Listes de contrôle d'accès}
 
\vspace{10mm}
 
\hspace{1mm}  Tout objet peut être considéré comme étant associé avec une ACL qui gouverne l'accès discrétionnaire de cet objet. Cette ACL est référée à une ACL d'accès. En plus, un répertoire peut avoir une ACL associée qui gouverne l'ACL initial pour les objets créés dans ce répertoire. Cette ACL est référé à l'ACL par défaut.
\vspace{5mm} \\
 
 
\hspace{1mm}  Une ACL consiste d'un jeu d'entrées d'ACL. Une entrée ACL spécifie les permissions d'accès sur l'objet associé pour un utilisateur ou groupe individuel comme une combinaison de permissions de lecture, écriture et de recherche/exécution.
\vspace{5mm} \\
 
 
\hspace{1mm}  Une entrée d'ACL contient un type de tag d'entrée, une qualifiant de tag d'entrée, et un jeu de permissions. On utilise le terme qualifier pour dénoter le qualifieur de tag d'entrée d'une entrée d'ACL.
\vspace{5mm} \\
 
 
\hspace{1mm}  Le qualifieur dénote l'identifiant d'un utilisateur ou un groupe, pour les entrées avec les types de tag d'ACL\_USER ou ACL\_GROUP, respectivement. Les entrées avec des types de tag autre que ACL\_USER ou ACL\_GROUP n'ont pas de qualifieur définis.
\vspace{5mm} \\
 
 
\hspace{1mm}  Les types de tag d'entrée suivant sont définis
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} ACL\_USER\_OBJ]{dénote les droits d'accès pour le propriétaire du fichier}
\item[\hspace{1mm} ACL\_USER]{dénote les droits d'accès pour les utilisateurs identifiés par le qualifieur de l'entrée}
\item[\hspace{1mm} ACL\_GROUP\_OBJ]{dénote les droits d'accès pour le groupe du fichier}
\item[\hspace{1mm} ACL\_GROUP]{dénote les droits d'accès pour les groupes identifiés par le qualifieur de l'entrée}
\item[\hspace{1mm} ACL\_MASK]{dénote les droits d'accès maximum qui peuvent être donnés par les entrées de type ACL\_USER, ACL\_GROUP\_OBJ ou ACL\_GROUP.}
\item[\hspace{1mm} ACL\_OTHER]{dénote les droits d'accès pour les processus qui ne matchent aucune autre entrée dans l'acl.}
\end{description}
 
\hspace{1mm}  Quand un accès est vérifié, les entrées ACL\_USER\_OBJ et ACL\_USER sont testés avec le user ID effectif. L'ID de groupe effectif, et les IDs de groupe supplémentaire sont testé avec les entrées ACL\_GROUP\_OBJ et ACL\_GROUP.
\vspace{5mm} \\
 
 
\hspace{1mm}  Une ACL valide contient exactement une entrée avec chaque types de tag ACL\_USER\_OBJ, ACL\_GROUP\_OBJ, et ACL\_OTHER. Les entrées avec les types de tag ACL\_USER et ACL\_GROUP peuvent apparaître 0 ou plusieurs fois dans une ACL. Dans une ACL qui contient des entrée de type de tag ACL\_USER ou ACL\_GROUP doivent contenir exactement une entrée de type de tag ACL\_MASK. Si une ACL ne contient pas d'entrées de type de tag ACL\_USER ou ACL\_GROUP, l'entrée ACL\_MASK est optionnel.
\vspace{5mm} \\
 
 
\hspace{1mm}  Tous les qualifier d'UID doivent être unique dans les entrées du type de tag ACL\_USER, et tous les GID doivent être unique dans les entrée de type de tag ACL\_GROUP.
\vspace{5mm} \\
 
 
\hspace{1mm}  La fonction acl\_get\_file() retourne une ACL avec 0 entrées d'ACL comme ACL par défaut d'un répertoire, si le répertoire n'est pas associé avec une ACL par défaut. La fonction acl\_set\_file() accepte également une ACL avec 0 entrées d'ACL comme ACL par défaut pour les répertoires, dénotant que le répertoire ne devrait pas être associé avec une ACL par défaut. C'est équivalement à utiliser la fonction acl\_delete\_def\_file().
\vspace{5mm} \\
\hspace{1mm}  [SECTION] name="Correspondance entre les entrées d'ACL et les bits de permission de fichier" table="paragraphes" imbrication="0"
\vspace{5mm} \\
 
 
\hspace{1mm}  Il y a une correspondance entre les permissions du propriétaire du fichier, groupe, et autres et les entrées d'ACL: les permissions du propriétaire correspondent aux permissions de l'entrée ACL\_USER\_OBJ. Si l'ACL a une entrée ACL\_MASK, les permissions du groupe correspondent aux permission de l'entrée ACL\_MASK. Sinon, si l'ACL n'a pas d'entrée ACL\_MASK, les permissions du groupe correspondent aux permissions de l'entrée ACL\_GROUP\_OBJ. Les permissions des autres correspondent aux permission de l'entrée ACL\_OTHER\_OBJ.
\vspace{5mm} \\
 
 
\hspace{1mm}  Les permissions du propriétaire, du groupe, et des autres match toujours les permissions de l'entrée d'ACL correspondante. Les modification des bits de permission de fichier résultent en la modification des entrées d'ACL correspondantes, et les modification des entrées d'ACL résultent en la modification des bits de permission de fichier.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Création d'objet et ACL par défaut }
 
\
 
\hspace{1mm}  L'ACL d'accès à un objet fichier est initialisé quand l'objet est créé avec une des fonctions creat(), mkdir(), mknod(), mkfifo() ou open(). Si une ACL par défaut est associée avec un répertoire, le paramètre mode des fonctions créant les objets fichier et l'ACL par défaut du répertoire sont utilisés pour déterminer l'ACL du nouvel objet:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} 1.]{Le nouvel objet hérite de l'ACL par défaut du répertoire correspondant comme son ACL d'accès}
\item[\hspace{1mm} 2.]{Les entrées d'ACL correspondant aux bits de permission de fichier sont modifiés pour qu'elles ne contiennent pas de permission qui ne sont pas contenus dans les permissions spécifiées par le paramètre mode.}
\end{description}
 
\hspace{1mm}  Si aucune ACL par défaut n'est associé avec un répertoire, le paramètre mode sont utilisés pour déterminer l'ACL du nouvel objet:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} 1.]{Le nouvel objet se voit assigner une ACL d'accès contenant des entrées de type de tag ACL\_USER\_OBJ, ACL\_GROUP\_OBJ, et ACL\_OTHER. Les permission de ces entrées sont définie aux permissions spécifiées par le masque de création de fichier.}
\item[\hspace{1mm} 2.]{Les entrées d'ACL d'accès correspondant au bits de permission de fichier sont modifié pour qu'ils ne contiennent pas de permission qui ne soient pas contenus dans les permissions spécifiées par le paramètre mode.}
\end{description}
 
\vspace{1cm}{\huge Algorithme de vérification d'accès }
 
\
 
\hspace{1mm}  Un processus peut demander un accès en lecture, écriture ou exécution/recherche sur un objet fichier protégé par une ACL. L'algorithme de vérification d'accès détermine si l'accès à l'objet est autorisé.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} 1.]{Si le User ID effectif du processus correspond au User ID du propriétaire du fichier, alors}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -]{Si l'entrée ACL\_USER\_OBJ contient les permissions demandées, l'accès est donné,}
\item[\hspace{6mm} -]{Sinon l'accès est refusé}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} 2.]{Sinon si le User ID effectif du processus correspond au qualifier d'une entrée de type ACL\_USER, alors}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -]{Si l'entrée ACL\_USER correspondant et l'entrée ACL\_MASK contiennent les permissions requises, l'accès est donné}
\item[\hspace{6mm} -]{Sinon l'accès est refusé}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} 3.]{Sinon si le GID effectif d'un ID de groupe supplémentaire du processus correspond au groupe du fichier ou le qualifier d'une entrée du type ACL\_GROUP, alord}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -]{Si l'ACL contient une entrée ACL\_MASK, alors}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{12mm} .]{Si l'entrée ACL\_MASK et une des entrées ACL\_GROUP\_OBJ ou ACL\_GROUP correspondant contient les permissions requises, l'accès est donné}
\item[\hspace{12mm} .]{Sinon l'accès est refusé}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -]{Sinon (noter qu'il ne peut pas y avoir d'entrée ACL\_GROUP sans entrée ACL\_MASK)}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{12mm} .]{Si l'entrée ACL\_GROUP\_OBJ contient les permissions requises, l'accès est donné,}
\item[\hspace{12mm} .]{Sinon l'accès est refusé}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} 4.]{Sinon si l'entrée ACL\_OTHER contient les permissions requises, l'accès est donné}
\item[\hspace{1mm} 5.]{Sinon l'accès est refusé.}
\end{description}
 
\vspace{1cm}{\huge Forme de texte d'ACL }
 
\
 
\hspace{1mm}  Une forme de texte long et cours pour représenter les ACL sont définis. Dans les 2 formes, les entrées d'ACL sont représenté en 3 champs séparés: le type de tag de l'entrée de l'ACL, le qualifier de l'entrée de l'ACL, et les permissions d'accès discrétionnaires. Le premier champ contient un des mots clé de type de tag suivant:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} user]{Une entrée ACL user spécifie que l'accès est donné soit au propriétaire du fichier (type de tag d'entrée ACL\_USER\_OBJ) ou un utilisateur spécifique (type de tag d'entrée ACL\_USER).}
\item[\hspace{1mm} group]{Une entrée ACL group spécifie que l'accès est donné soit au groupe du fichier (type de tag d'entrée ACL\_GROUP\_OBJ), ou un groupe spécifique (type de tag d'entrée ACL\_GROUP).}
\item[\hspace{1mm} mask]{Une entrée ACL mask spécifie l'accès maximum qui peut être donné à toute entrée d'ACL excepté l'entrée utilisateur pour le propriétaire du fichier et l'entrée other (type de tag d'entrée ACL\_MASK).}
\item[\hspace{1mm} other]{Une entrée ACL other spécifie l'accès donné à tout processus qui ne correspond à aucune entrée d'ACL user et group (type de tag d'entrée ACL\_OTHER).}
\end{description}
 
\hspace{1mm}  Le second champ contient l'identifiant d'utilisateur ou de groupe associé avec l'entrée d'ACL pour les entrées de type de tag ACL\_USER ou ACL\_GROUP, et est vide pour toutes les autres entrées. Un identifiant d'utilisateur peut être un nom d'utilisateur ou un UID. Un identifiant de groupe peut être un nom de groupe ou un ID.
\vspace{5mm} \\
 
 
\hspace{1mm}  Le troisième champ contient les permissions d'accès discrétionnaires. Les permission de lire, écrire, et recherche/exécution sont représentés par les caractères r,w et y, respectivement. Chacun de ces caractères est remplacé par le caractère '-' pour indiquer qu'une permission est absente. En convertissant de la forme texte en représentation interne, les permissions absente n'ont pas besoin d'être spécifiés.
\vspace{5mm} \\
 
 
\hspace{1mm}  Les espaces blanc sont autorisé au début et à la fin de chaque entrée d'ACL, et immédiatement avant et après un séparateur de champ.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Forme de texte long }
 
\
 
\hspace{1mm}  La forme de texte long contient une entrée d'ACL par ligne. En plus, un '\#' peut commencer un commentaire qui s'étend jusqu'à la fin de la ligne. Si une entrée d'ACL ACL\_USER, ACL\_GROUP\_OBJ ou ACL\_GROUP contient des permissions qui ne sont pas contenus dans ACL\_MASK, l'entrée est suivie par un '\#', la chaîne 'effective', et les permissions d'accès effectif définis par cette entrée.
\vspace{5mm} \\
 
 
\hspace{1mm} Exemple:
 
{\ttfamily
user::rw-\\ user:lisa:rw- \#effective:r--\\ group::r--\\ group:toolies:rw- \#effective:r--\\ mask::r--\\ other::r--\\
}
\vspace{8mm}
 
\vspace{1cm}{\huge Forme de texte court }
 
\
 
\hspace{1mm}  La forme de texte court est une séquence d'entrées d'ACL séparés par des virgules, et est utilisant comme entrée. Les commantaires ne sont pas supportés. Les mots clé de type de tag d'entrée peuvent apparaître soit sous le forme complète, soit sous forme d'une seule lettre. Les abréviations sont pour user (u), group (g), mask (m) et other (o). Les permission peuvent contenir au moins un caractère de chaque dans n'importe quel ordre.
\vspace{5mm} \\
 
 
\hspace{1mm} Exemple:
 
{\ttfamily
u::rw-,u:lisa:rw-,g::r--,g:toolies:rw-,m::r--,o::r--\\ g:toolies:rw,u:lisa:rw,u::wr,g::r,o::r,m::r\\
}
\vspace{8mm}
 
\hspace{1mm}  Dans les systèmes qui supportent les ACL, les utilitaires de fichier ls, cp et mv changent leur comportement de la manière suivante:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} -]{Pour les fichier qui ont une ACL par défaut ou une ACL d'accès qui contient plus que les 3 entrées requise, ls -l affiche un signe + après la chaîne de permissions.}
\item[\hspace{1mm} -]{Si le flag -p est spécifié, l'utilisataire cp préserve également les ACL. Si ce n'est pas possible, une alerte est produite.}
\item[\hspace{1mm} -]{mv préserve toujours les ACL. Si ce n'est pas possible, une alerte est produite.}
\end{description}
\end{flushleft}
\end{document}
