commande chmod

Objectif

Permet de modifier les modes d'ouverture de fichier.

Syntaxe

Pour modifier les modes de fichier de façon symbolique

chmod [ -R ] [ -h ] [ -f ] [ [ u ] [ g ] [ o ] | [ a ] ] { { - | + | = } [ R ] [ w ] [ x ] [ X ] [ s ] [ t ] } { Fichier ... | Répertoire ... }

Pour modifier les modes de fichier numériquement

chmod [ -R ] [ -h ] [ -f ] PermissionCode { Fichier ... | Répertoire ... }

Descriptif

La commande chmod modifie les bits de mode et les listes de contrôle d'accès étendues (ACL) des fichiers ou répertoires spécifiés. Le mode peut être défini symboliquement ou numériquement (mode absolu).

Lorsqu'un lien symbolique est détecté et que vous n'avez pas spécifié l'indicateur -h , la commande chmod modifie le mode du fichier ou du répertoire désigné par le lien et non le mode du lien lui-même. Si vous spécifiez l'indicateur -h , la commande chmod empêche ce changement de mode.

Si vous spécifiez à la fois l'indicateur -h et l'indicateur -R , la commande chmod descend les répertoires spécifiés de manière récursive et, lorsqu'un lien symbolique est détecté, le mode du fichier ou du répertoire désigné par le lien n'est pas modifié.

Indicateurs

Article Descriptif
-f Supprime tous les rapports d'erreurs, à l'exception des autorisations et des instructions d'utilisation non valides.
-h Supprime un changement de mode pour le fichier ou le répertoire désigné par le lien symbolique détecté.

Remarque: Ce comportement est légèrement différent de celui de l'indicateur -h sur les commandes chgrp et chown car les bits de mode ne peuvent pas être définis sur les liens symboliques.

-r Descend uniquement les répertoires de manière récursive, comme indiqué par le modèle Fichier ...|Répertoire .... L'indicateur -R modifie les bits de mode de fichier de chaque répertoire et de tous les fichiers correspondant au modèle spécifié. Voir l'exemple 6.

Lorsqu'un lien symbolique est rencontré et que le lien pointe vers un répertoire, les bits de mode de fichier de ce répertoire sont modifiés, mais le répertoire n'est pas davantage traversé.

Mode symbolique

Pour spécifier un mode sous forme symbolique, vous devez spécifier trois ensembles d'indicateurs.

Remarque: ne séparez pas les indicateurs par des espaces.

Le premier ensemble d'indicateurs indique qui se voit accorder ou refuser les droits spécifiés, comme suit:

Article Descriptif
U Propriétaire du fichier.
g Entrées de groupe et de liste de contrôle d'accès étendue appartenant au groupe du fichier.
o Tous les autres.
a Utilisateur, groupe et tous les autres. L'indicateur a a le même effet que la spécification conjointe des indicateurs ugo . Si aucun de ces indicateurs n'est spécifié, l'indicateur par défaut est a et le masque de création de fichier (umask) est appliqué.

Le deuxième ensemble d'indicateurs indique si les droits doivent être supprimés, appliqués ou définis:

Article Descriptif
- Supprime les droits spécifiés.
+ Applique les droits spécifiés.
= Efface la zone d'autorisation sélectionnée et la définit sur l'autorisation spécifiée. Si vous ne spécifiez pas de droit après =, la commande chmod supprime tous les droits de la zone sélectionnée.

Le troisième ensemble d'indicateurs spécifie les droits à supprimer, à appliquer ou à définir:

Article Descriptif
R Droit de lecture.
w Droit d'accès en écriture.
x Droit d'exécution pour les fichiers ; droit de recherche pour les répertoires.
X Droit d'exécution pour les fichiers si les bits de mode en cours (non modifiés) ont au moins l'un des bits d'exécution définis pour l'utilisateur, le groupe ou d'autres éléments. L'indicateur X est ignoré si le paramètre Fichier est spécifié et qu'aucun des bits d'exécution n'est défini dans les bits de mode en cours.

Droits de recherche pour les répertoires.

s Définissez le droit d'accès de l'ID utilisateur sur l'exécution si l'indicateur u est spécifié ou implicite. Définissez-group-ID-sur-exécution si l'indicateur g est spécifié ou implicite.
t Pour les répertoires, indique que seuls les propriétaires de fichiers peuvent lier ou délier des fichiers dans le répertoire spécifié. Pour les fichiers, définit l'attribut save-text .

Mode numérique ou absolu

La commande chmod vous permet également d'utiliser la notation octale pour le mode. Le mode numérique est la somme d'une ou de plusieurs des valeurs suivantes:

Article Descriptif
4 000 Définit l'ID utilisateur lors de l'exécution.
2 000 Définit l'ID de groupe lors de l'exécution.
1 000 Définit le droit de liaison aux répertoires ou définit l'attribut save-text pour les fichiers.
0400 Autorise la lecture par le propriétaire.
0200 Autorise l'écriture par le propriétaire.
0100 Autorise l'exécution ou la recherche par propriétaire.
0040 Autorise la lecture par groupe.
0020 Autorise l'écriture par groupe.
0050 Autorise l'exécution ou la recherche par groupe.
0004 Autorise la lecture par d'autres.
0002 Autorise l'écriture par d'autres personnes.
0001 Autorise l'exécution ou la recherche par d'autres personnes.
Notes :
  1. La spécification du mode désactive numériquement les listes de contrôle d'accès étendues. Pour plus d'informations, voir "Listes de contrôle d'accès" dans Gestion des systèmes d'exploitation et des unités .
  2. La modification des droits d'accès aux groupes affecte également symboliquement les entrées de la liste de contrôle d'accès AIXC. Les entrées de groupe de la liste de contrôle d'accès qui sont égales au groupe propriétaire du fichier se voient refuser tout droit supprimé du mode. Pour plus d'informations, voir "Listes de contrôle d'accès" dans Gestion des systèmes d'exploitation et des unités .
  3. Vous pouvez spécifier plusieurs modes symboliques séparés par des virgules. Les opérations sont effectuées dans l'ordre dans lequel elles apparaissent de gauche à droite.
  4. Vous devez spécifier le mode de manière symbolique ou utiliser un octal explicite à 4 caractères avec un zéro de début (par exemple, 0755) lors de la suppression de l'autorisation set-group-ID-on-execution des répertoires.
  5. Pour un objet de système de fichiers associé à une liste de contrôle d'accès non AIXC, toute demande (symbolique ou numérique) qui se traduit par une opération de modification des bits de droits d'accès de base (rwxrwxrwx) dans les bits de mode entraîne le remplacement de la liste de contrôle d'accès existante par les bits de mode uniquement.
  6. L'attribut save-text ne peut être défini que par l'utilisateur root, mais il peut être supprimé par les utilisateurs standard.

Statut de sortie

Cette commande renvoie les valeurs de sortie suivantes :

Article Descriptif
0 % L'exécution de la commande a abouti et toutes les modifications demandées ont été effectuées.
>0 Une erreur s'est produite.

Security

Contrôle d'accès

Ce programme doit être installé en tant que programme utilisateur normal dans la base informatique sécurisée.

Seul le propriétaire du fichier ou l'utilisateur root peut modifier le mode d'un fichier.

Attention aux utilisateurs RBAC: cette commande peut effectuer des opérations privilégiées. Seuls les utilisateurs privilégiés peuvent exécuter des opérations privilégiées. Pour plus d'informations sur les autorisations et les privilèges, consultez la base de données des commandes privilégiées disponible dans Sécurité. Pour la liste des privilèges et autorisations associés à cette commandes, reportez-vous à la commande lssecattr ou à la sous-commande getcmdattr.

Exemples

  1. Pour ajouter un type d'autorisation à plusieurs fichiers:
    chmod  g+w  chap1  chap2
    Ajoute un droit d'accès en écriture pour les membres de groupe aux fichierschap1etchap2.
  2. Pour effectuer plusieurs modifications de droits à la fois:
    chmod  go-w+x  mydir
    Cela refuse aux membres du groupe et aux autres personnes le droit de créer ou de supprimer des fichiers dansmydir(go-w) et permet aux membres de groupe et aux autres utilisateurs d'effectuer des recherchesmydirou l'utiliser dans un nom de chemin (go + x). Cette valeur est équivalente à la séquence de commandes:
    chmod  g-w  mydir
    chmod  o-w  mydir
    chmod  g+x  mydir
    chmod  o+x  mydir
  3. Pour autoriser uniquement le propriétaire à utiliser une procédure shell en tant que commande:
    chmod  u=rwx,go= cmd
    Cela accorde des droits d'accès en lecture, en écriture et en exécution à l'utilisateur qui est propriétaire du fichier (U=rwx). Il refuse également au groupe et aux autres l'autorisation d'accèscmdde quelque manière que ce soit (go=).

    Si vous êtes autorisé à exécuter lecmdfichier de commandes shell, vous pouvez l'exécuter en entrant:

    cmd

    Remarque: En fonction de la variable shell PATH , vous devrez peut-être spécifier le chemin d'accès complet à lacmd.xlsx.

  4. Pour utiliser les modes Set-ID:
    chmod  ug+s  cmd
    Lorsque lecmdest exécutée, les ID d'utilisateur et de groupe effectifs sont définis sur ceux qui possèdent lecmd.xlsx. Seuls les ID effectifs associés au processus enfant qui exécute lecmdsont modifiées. Les ID effectifs de la session shell restent inchangés.

    Cette fonction vous permet d'autoriser l'accès à des fichiers restreints. Supposons que lecmdle programme a le mode Set-User-ID activé et appartient à un utilisateur appelédbms. L'utilisateurdbmsn'est pas réellement une personne, mais peut être associée à un système de gestion de base de données. L'utilisateurbettyn'a pas le droit d'accéder à l'un desdbmsLes fichiers de données. Cependant, elle a la permission d'exécuter lecmdcommande . Dans ce cas, son ID utilisateur effectif est temporairement remplacé pardbms, de sorte que lacmdle programme peut accéder aux fichiers de données appartenant à l'utilisateurdbms.

    De cette façon, l'utilisateurbettypeut utiliser lecmdpour accéder aux fichiers de données, mais elle ne peut pas les endommager accidentellement à l'aide des commandes shell standard.

  5. Pour utiliser le format de mode absolu de la commande chmod :
    chmod  644  text
    Ce paramètre définit les droits d'accès en lecture et en écriture du propriétaire et définit le mode lecture seule pour le groupe et les autres personnes. Cette opération supprime également toutes les listes de contrôle d'accès étendues qui peuvent être associées au fichier.
  6. Pour descendre de manière récursive les répertoires et modifier les droits d'accès aux fichiers et aux répertoires en fonction de la structure arborescente:

    ./dir1/dir2/file1

    ./dir1/dir2/file2

    ./dir1/file1

    entrez la séquence de commandes suivante:

    chmod -R 777 f*
    qui modifie les droits sur ./dir1/file1.

    Mais étant donné la structure arborescente de:

    ./dir1/fdir2/file1

    ./dir1/fdir2/file2

    ./dir1/file3

    la séquence de commandes:

    chmod -R 777 f*
    modifiera les droits sur:

    ./dir1/fdir2

    ./dir1/fdir2/file1

    ./dir1/fdir2/file2

    ./dir1/file3

Fichier

Article Descriptif
/usr/bin/chmod Contient la commande chmod .