Introduction
Les permissions sous Linux déterminent qui peut lire, modifier ou exécuter des fichiers. Les tâches RHCSA exigent couramment d'inspecter les chaînes de permissions, de définir des modes numériques et symboliques, de modifier la propriété et de configurer des répertoires afin que les fichiers soient utilisables par le groupe approprié.
Dans ce laboratoire, vous travaillerez directement dans /home/labex/project. Vous inspecterez des fichiers préparés, appliquerez des modes de fichiers standard avec chmod, activerez un script en toute sécurité, prendrez possession d'un fichier appartenant à root et configurerez un répertoire partagé avec setgid.
Inspecter les champs de permission des fichiers
Dans cette étape, vous allez inspecter les permissions avant de les modifier. Le premier champ dans la sortie de ls -l affiche le type de fichier et les permissions ; les champs propriétaire et groupe indiquent qui contrôle le fichier.
Déplacez-vous dans le répertoire de projet LabEx standard.
cd /home/labex/project
Listez l'arborescence du laboratoire préparée.
ls -l permissions-lab
Inspectez les fichiers de configuration préparés. Le mode, le propriétaire et le groupe sont visibles dans la liste détaillée.
ls -l permissions-lab/configs
Utilisez stat pour une vue compacte d'un fichier. %a affiche le mode numérique, %U affiche le nom du propriétaire et %G affiche le nom du groupe.
stat -c '%n %a %U %G' permissions-lab/configs/private.conf
Inspectez le fichier de transfert appartenant à root. Notez que le propriétaire et le groupe sont actuellement root.
ls -l permissions-lab/shared/handoff.txt
Définir les modes de fichiers avec chmod numérique
Dans cette étape, vous utiliserez des modes numériques avec chmod. Les trois chiffres décrivent les permissions de l'utilisateur, du groupe et des autres. Par exemple, 600 signifie lecture/écriture uniquement pour l'utilisateur, et 644 signifie lecture/écriture pour l'utilisateur tandis que le groupe et les autres peuvent lire.
Commencez depuis le répertoire du projet.
cd /home/labex/project
Rendez private.conf lisible et modifiable uniquement par son propriétaire. C'est approprié pour un fichier contenant des paramètres sensibles.
chmod 600 permissions-lab/configs/private.conf
Rendez readme.txt lisible par tout le monde mais modifiable uniquement par le propriétaire.
chmod 644 permissions-lab/configs/readme.txt
Inspectez les modes avec stat.
stat -c '%n %a' permissions-lab/configs/private.conf permissions-lab/configs/readme.txt
Vous devriez voir 600 pour private.conf et 644 pour readme.txt.
Activer l'exécution de script avec chmod symbolique
Dans cette étape, vous utiliserez des permissions symboliques. Le mode symbolique vous permet d'ajouter ou de supprimer une permission spécifique sans réécrire tout le mode numérique.
Commencez depuis le répertoire du projet.
cd /home/labex/project
Inspectez le script avant de le modifier. Il doit être lisible mais pas exécutable.
ls -l permissions-lab/scripts/check-inventory.sh
Ajoutez la permission d'exécution pour l'utilisateur et le groupe. Dans u+x,g+x, u signifie utilisateur, g signifie groupe, et +x signifie ajouter la permission d'exécution.
chmod u+x,g+x permissions-lab/scripts/check-inventory.sh
Exécutez le script depuis son chemin.
permissions-lab/scripts/check-inventory.sh
Sortie attendue :
inventory check ok
Inspectez le mode final. Il devrait maintenant inclure les bits d'exécution pour l'utilisateur et le groupe.
stat -c '%n %a' permissions-lab/scripts/check-inventory.sh
Modifier la propriété d'un fichier de transfert
Dans cette étape, vous prendrez possession d'un fichier appartenant à root en utilisant sudo chown. La modification de la propriété nécessite généralement des privilèges administratifs, donc sudo est approprié pour ce fichier d'exercice.
Commencez depuis le répertoire du projet.
cd /home/labex/project
Inspectez le propriétaire et le groupe actuels. Le fichier commence en tant que root:root.
stat -c '%n %U:%G %a' permissions-lab/shared/handoff.txt
Changez le propriétaire et le groupe en labex:labex. La forme user:group définit les deux champs en une seule commande.
sudo chown labex:labex permissions-lab/shared/handoff.txt
Restreignez le fichier à la lecture/écriture pour le propriétaire et à la lecture pour le groupe.
chmod 640 permissions-lab/shared/handoff.txt
Ajoutez une ligne opérationnelle maintenant que labex possède le fichier.
printf 'Handled by labex after ownership update.\n' >> permissions-lab/shared/handoff.txt
Inspectez le propriétaire, le groupe, le mode et le contenu finaux.
stat -c '%n %U:%G %a' permissions-lab/shared/handoff.txt
cat permissions-lab/shared/handoff.txt
Configurer un répertoire partagé avec setgid
Dans cette étape, vous allez configurer un répertoire partagé. Les répertoires ont besoin de la permission d'exécution pour y accéder et les parcourir. Le bit setgid sur un répertoire permet aux nouveaux fichiers d'hériter du groupe du répertoire, ce qui aide les équipes à maintenir un contenu partagé regroupé de manière cohérente.
Commencez depuis le répertoire du projet.
cd /home/labex/project
Inspectez le mode actuel du répertoire.
stat -c '%n %a %U:%G' permissions-lab/teamdrop
Définissez le mode du répertoire sur 2775. Le 2 initial active le setgid, 775 donne un accès complet au propriétaire et au groupe, et donne un accès lecture/exécution aux autres.
chmod 2775 permissions-lab/teamdrop
Créez un fichier à l'intérieur du répertoire partagé.
printf 'team handoff ready\n' > permissions-lab/teamdrop/status.txt
Définissez le mode du fichier afin que le propriétaire et le groupe puissent le lire et le modifier.
chmod 664 permissions-lab/teamdrop/status.txt
Inspectez le répertoire et le nouveau fichier.
stat -c '%n %a %U:%G' permissions-lab/teamdrop permissions-lab/teamdrop/status.txt
cat permissions-lab/teamdrop/status.txt
Résumé
Vous avez pratiqué les permissions et la propriété standard sous Linux pour la préparation au RHCSA. Vous avez inspecté les champs de permission, appliqué des modes de fichiers numériques, utilisé chmod symbolique pour activer l'exécution de scripts, modifié la propriété avec sudo chown, défini des modes de fichiers sécurisés et configuré un répertoire partagé avec setgid afin que les nouveaux fichiers héritent du groupe souhaité.



