====== 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