====== Utilisateurs et droits ======
===== Gestion d'utilisateurs =====
Quand une commande propose de spécifier l'utilisateur de façon facultative (''[user]''), cela signifie qu'en l'absence de ce paramètre, la commande sera appliquée sur l'utilisateur actuellement connecté.
useradd MonUser # créer un nouvel utilisateur
# -m pour créer le dossier home de cet utilisateur
# sans mot de passe = inactif
userdel # supprimer un utilisateur (et éventuellement son dossier)
users # afficher les utilisateurs actuellements connectés
groups [user] # afficher les groupes de l'utilisateur
id [user] # afficher l'id de l'utilisateur et ses groupes
sudo usermod -l newName oldName # modifier le login d'un utilisateur
sudo usermod -m -d newPath userName # déplacer le home d'un utilisateur
sudo usermod oldGroup -g newGroup # changer le groupe primaire d'un utilisateur
sudo groupmod -n newName oldName # modifier le nom d'un groupe
usermod -a -G groupName userName # ajouter l'utilisateur au groupe
usermod -g groupName userName # changer le groupe primaire de l'utilisateur
useradd -g groupName userName # ajouter un nouvel utilisateur et préciser son groupe primaire
useradd -G groupName userName # ajouter un nouvel utilisateur et préciser un groupe secondaire (existant)
sudo chage -l userName # afficher des informations sur la validité du mot de passe de l'utilisateur
passwd - userName # forcer l'utilisateur à changer son mot de passe
===== Se faire passer pour d'autres : su et sudo =====
su userName # prendre l'identité d'un utilisateur (su = substitute / switch user)
users ; whoami # après un su pour voir qui on est vraiment et pour qui on se fait passer
su -l userName # utiliser l'environnement de l'utilisateur plutôt que le notre lors du su
sudo -u userName commandName # exécuter une commande en tant que l'utilisateur spécifié
sudo commandName # exécuter une commande en tant que root (uid=0)
# sudo demande le mot de passe de l'utilisateur courant. Pour cela, celui-ci doit avoir les droits d'exécuter CETTE commande en tant que CET utilisateur spécifié
cat /etc/sudoers # afficher les droits de sudo actuellements définis sur cette machine
===== Gestion des droits =====
ls -l fileOrDirectoryName # afficher les infos (dont les droits) de ce fichier ou dossier
# résultat :
-rw-r--r-- 1 userName groupName 3771 mars 8 12:59 fileOrDirectoryName
|\_/\_/\_/ | \______/ \_______/ \__/ \____________/ \_________________/
| | | | | | | | | |
| | | | | | | | | ↳ nom du fichier
| | | | | | | | ↳ date et heure de dernière modification
| | | | | | | ↳ taille du fichier
| | | | | | ↳ groupe propriétaire
| | | | | ↳ utilisateur propriétaire
| | | | ↳ nombre de "hard links"
| | | ↳ droits du reste du monde (others)
| | ↳ droits du groupe propriétaire
| ↳ droits de l'utilisateur prorpiétaire
↳ type de fichier
Types de fichier :
* ''-'' : fichier classique
* ''d'' : dossier
* ''l'' : lien symbolique
* ''c'' : périphérique en mode caractère (clavier, terminal, etc.)
* ''b'' : périphérique en mode bloc (disques durs, etc.)
* liste non-exhaustive
==== Changer les droits : chmod ====
# modèle de base en mode textuel :
chmod [u g o a] [+ - =] [r w x] fileName
# exemples :
chmod u+x fileName # donner le droit d'exécution à l'utilisateur propriétaire
chmod go-wx fileName # interdire les droits d'écriture et d'exécution au groupe propriétaire et aux autres
chmod a+r fileName # donner les droits de lecture à tout le monde
chmod u=rwx,g=rx,o=x # fixer les droits de chacun
FIXME ajouter ici une explication sur le mode octal.
==== Changer les propriétaires : chown ====
# modèle de base :
sudo chown [-R] [userName][:groupName] target1 [target2...]
# -R pour récursif (appliqué à un dossier : se transmet à tous ses fichiers, sous-dossiers, et ainsi de suite)
# exemples :
sudo chown -R bill . #rend bill propriétaire du dossier courant et de tout son contenu
sudo chown : www-data /var/www # rend le groupe www-data propriétaire du dossier spécifié, mais ne change pas son contenu