Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Picasoft
APIs
Init
Linux
Commits
4a860108
Verified
Commit
4a860108
authored
Jan 22, 2019
by
Stephane Bonnet
Browse files
Presque!
parent
eb69bb6b
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/cli/adv.tex
View file @
4a860108
...
...
@@ -7,7 +7,7 @@
\begin{block}
{
Utilisateur
}
Deux catégories:
\begin{itemize}
\item
Utilisateurs
\emph
{
système
}
utilisés pour l
imiter l'accès à des programmes ou des fichiers
.
\item
Utilisateurs
\emph
{
système
}
utilisés pour l
a sécurité du système
.
\item
Utilisateurs
\emph
{
normaux
}
qui sont voués à se servir du système.
\end{itemize}
Un utilisateur est identifié par un nombre, l'
\textbf
{
uid
}
(
\emph
{
user id
}
) auquel est
...
...
@@ -49,6 +49,23 @@
Ici, le fichier
\cmd
{
/
etc
/
shadow
}
appartient à l'utilisateur
\cmd
{
root
}
et au groupe
\cmd
{
shadow
}
.
\end
{
frame
}
\begin
{
frame
}
[
fragile
]
{
Utilisateurs et groupes
}
\framesubtitle
{
Changement de propriétaire
}
Seul le superutilisateur peut changer le propriétaire de fichiers ou de répertoires au moyen
des commandes suivantes:
\begin
{
itemize
}
\item
\cmd
{
chown
}
change l'utilisateur propriétaire
(
et éventuellement le groupe
)
\item
\cmd
{
chgrp
}
change le groupe propriétaire
\end
{
itemize
}
\begin
{
exampleblock
}{}
\cmd
{
chown newuser:newgroup
/
my
/
file
}
\cmd
{
chgrp newgroup
/
my
/
file
}
\end
{
exampleblock
}
\end
{
frame
}
\begin
{
frame
}
[
fragile
]
{
Qui suis
-
je?
}
Les commandes suivantes permettent d'identifier l'utilisateur courant et les groupes auxquel il est associé.
...
...
@@ -71,6 +88,7 @@ bonnetst adm cdrom sudo dip plugdev lpadmin sambashare
\end{beamercolorbox}
\end{frame}
\begin{frame}
{
Devenir grand chef
}
\framesubtitle
{
Utilisateurs et processus
}
\begin{itemize}
...
...
@@ -138,35 +156,165 @@ bonnetst adm cdrom sudo dip plugdev lpadmin sambashare
\subsection
{
Permissions
}
\begin{frame}
{
Les permissions
}
%% permissions fichiers
Les fichiers et répertoires appartiennent à un utilisateur et à un groupe. Les permissions d'accès sont définies pour:
\begin{itemize}
\item
Le propriétaire du fichier (
\emph
{
user
}
):
\textbf
(u).
\item
Le groupe du fichier:
\textbf
(g).
\item
Le reste du monde (
\emph
{
others
}
):
\textbf
(o).
\end{itemize}
Les permissions d'accès peuvent être en:
\begin{itemize}
\item
Lecture (
\emph
{
read
}
):
\textbf
(r).
\item
Écriture (
\emph
{
write
}
):
\textbf
(w).
\item
Exectution (
\emph
{
eXecute
}
):
\textbf
(x).
\end{itemize}
\end{frame}
\begin{frame}
[fragile]
{
Les permissions
}
\frametitle
{
Visualisation des permissions
}
``
\cmd
{
ls -l
}
'' affiche les permissions d'un fichier ou d'un dossier.
\begin{beamercolorbox}
[wd=
\linewidth
,rounded=true,shadow=true]
{
terminal
}
\begin{Verbatim}
$
cd ~
/
api
$
ls -l file
_
1
-rw-r--r-- 1 bonnetst bonnetst 0 janv. 21 14:12 file
_
1
\end{Verbatim}
\end{beamercolorbox}
\end{frame}
\begin{frame}
[fragile]
{
Les permissions
}
\frametitle
{
Interprétation
}
\begin{itemize}
\item
-
\textcolor
{
blue
}{
rw-
}
r-
{}
-r-
{}
- indique les permissions pour le propriétaire
\item
-rw-
\textcolor
{
blue
}{
r-
{}
-
}
r-
{}
- indique les permissions pour le groupe
\item
-rw-r-
{}
-
\textcolor
{
blue
}{
r-
{}
-
}
indique les permissions pour les autres
\end{itemize}
\end{frame}
\subsection
{
Variables
}
\begin{frame}
{
Un peu de mémoire : les variables
}
%% Définir une variable
%% setenv / export
\begin{frame}
[fragile]
{
Les variables
}
Le shell permet de définir et d'utiliser des variables.
\begin{block}
{
Variable
}
\begin{itemize}
\item
Identifiée par son nom
\item
Affectée d'une valeur
\item
Elle peut être locale au shell
\item
Elle peut être exportée. Dans ce cas, on parle de variable d'environnement.
\end{itemize}
\end{block}
\begin{block}
{
Manipulation des variables
}
\begin{itemize}
\item
\cmd
{
myvar="hello"
}
Crée la variable
\cmd
{
myvar
}
et y affecte la chaîne "hello".
\item
\cmd
{
export MYVAR="hello"
}
Crée la variable d'environnement
\cmd
{
MYVAR
}
.
\item
\cmd
{
unset myvar
}
Supprime la variable
\cmd
{
myvar
}
.
\item
\cmd
{
\$
myvar
}
accède à la valeur de la variable
\cmd
{
myvar
}
.
\end{itemize}
\end{block}
\begin{beamercolorbox}
[rounded=true,shadow=true]
{
terminal
}
\begin{Verbatim}
$
myvar
=
"hello"
$
echo
$
myvar
hello
\end
{
Verbatim
}
\end
{
beamercolorbox
}
\end
{
frame
}
\begin{frame}
{
\cmd
{
PATH
}}
\end{frame}
\begin
{
frame
}
[
fragile
]
{
Export de variables
}
\begin{frame}
{
\cmd
{
PS1
}}
\begin
{
block
}{
Export
}
Une variable exportée est connue de tous les processus lancés à partir du shell où elle a été définie.
Elle est héritée par tous les processus enfants. Elle fait partie de leur environnement.
\end
{
block
}
\begin
{
beamercolorbox
}
[
wd
=
\linewidth
,rounded
=
true,shadow
=
true
]
{
terminal
}
\begin
{
Verbatim
}
$
myvar="hello"
$
export MYVAR
=
"hello export"
$
bash
\textcolor
{
yellow
}{
<----- A partir de ce point, on est dans un second shell
}
$
echo
$
myvar
$
echo
$
MYVAR
hello export
\end{Verbatim}
\end{beamercolorbox}
\end{frame}
\begin{frame}
{
Variables de sortie
}
\begin{frame}
[fragile]
{
Variable PATH
}
\begin{itemize}
\item
Spécifie les chemins où seront recherchées les commandes
\item
Variable extrêmement importante. Si un répertoire qui contient des commandes n'est pas dans le PATH,
il faudra spécifier son chemin complet pour pouvoir la lancer.
\end{itemize}
\begin{beamercolorbox}
[rounded=true,shadow=true]
{
terminal
}
\begin{Verbatim}
$
echo
$
PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
$
which ls
/
bin
/
ls
\end
{
Verbatim
}
\end
{
beamercolorbox
}
\begin
{
block
}{
\cmd
{
which
}}
\cmd
{
which
}
affiche l'emplacement d'une commande.
Recherche dans tous les répertoires du PATH.
\end
{
block
}
\end
{
frame
}
\
subsection
{
Enchaînement de commandes
}
\
begin
{
frame
}
[
fragile
]
{
Variable PS
1
}
\begin{frame}
{
\&\&
et ||
}
\begin
{
itemize
}
\item
Spécifie le format du prompt du shell.
\item
On peut tenter de la redéfinir pour personnaliser sont shell.
\item
RTFM
!
\end
{
itemize
}
\end
{
frame
}
\
subsection
{
Fichiers de configuration
}
\
begin
{
frame
}
[
fragile
]
{
Valeurs de retour
}
\begin{frame}
{
Les différents fichiers de configuration de
\cmd
{
bash
}}
\begin
{
block
}{
Valeur de retour
}
\begin
{
itemize
}
\item
Toutes les commandes retournent une valeur qui indique qu'elles ont réussi ou échoué.
\item
La valeur
0
indique le succès, toutes les autres valeurs l'échec.
\item
La variable du shell
\cmd
{
\$
?
}
contient cette valeur à la fin de chaque commande.
\end
{
itemize
}
\end
{
block
}
\begin
{
beamercolorbox
}
[
rounded
=
true,shadow
=
true
]
{
terminal
}
\begin
{
Verbatim
}
$
true
$
echo
$
?
0
$
false
$
echo
$
?
1
\end
{
Verbatim
}
\end
{
beamercolorbox
}
\end
{
frame
}
\begin{frame}
{
.bashrc
}
\subsection
{
Fichiers de configuration
}
\begin
{
frame
}
[
fragile
]
{
Les différents fichiers de configuration de
\cmd
{
bash
}}
\cmd
{
bash
}
exploite plusieurs fichiers de configuration:
\begin
{
itemize
}
\item
\cmd
{
/
etc
/
bash.bashrc
}
est le fichier de configuration global, commun à tous les utilisateurs
\item
\verb
+
~
/
.bashrc
+
est le fichier de configuration spécifique à l'utilisateur
\end
{
itemize
}
\begin
{
block
}{
\cmd
{
.bashrc
}}
Les commandes de ce fichier sont exécutées par
\cmd
{
bash
}
au démarrage.
Il suffit donc d'y ajouter toute personnalisation pour qu'elle soit prise en compte.
\end
{
block
}
\end
{
frame
}
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment