Android

Comment modifier récursivement les autorisations du fichier sous Linux

Introduction aux commandes du terminal | macOS/Linux/bash | gCKn 2018

Introduction aux commandes du terminal | macOS/Linux/bash | gCKn 2018

Table des matières:

Anonim

Linux est un système multi-utilisateurs, et l'accès aux fichiers est contrôlé via les autorisations, les attributs et la propriété des fichiers. Cela garantit que seuls les utilisateurs et processus autorisés peuvent accéder aux fichiers et aux répertoires.

Pour plus d'informations sur les autorisations de fichiers, voir «Commande Umask sous Linux»., nous expliquerons comment modifier récursivement les autorisations des fichiers et des répertoires.

Chmod récursif

La commande chmod vous permet de modifier les autorisations des fichiers en utilisant le mode symbolique ou numérique.

Pour opérer récursivement sur tous les fichiers et répertoires d'un répertoire donné, utilisez la commande chmod avec l'option -R , ( --recursive ). La syntaxe générale pour modifier récursivement les autorisations du fichier est la suivante:

chmod -R MODE DIRECTORY

Par exemple, pour changer les autorisations de tous les fichiers et sous-répertoires du répertoire /var/www/html en 755 vous utiliseriez:

chmod -R 755 /var/www/html

Le mode peut également être spécifié à l'aide de la méthode symbolique:

chmod -R u=rwx, go=rx /var/www/html

Seuls root, le propriétaire du fichier ou l'utilisateur disposant des privilèges sudo peuvent modifier les autorisations d'un fichier. Soyez extrêmement prudent lorsque vous modifiez récursivement les autorisations des fichiers.

Utilisation de la commande find

En général, les fichiers et répertoires ne doivent pas avoir les mêmes autorisations. La plupart des fichiers ne nécessitent pas l'autorisation d'exécution, tandis que vous devez définir des autorisations d'exécution sur les répertoires pour les modifier.

Le scénario le plus courant consiste à modifier récursivement les autorisations du fichier de site Web en 644 et celles du répertoire en 755 .

En utilisant la méthode numérique:

find /var/www/html -type d -exec chmod 755 {} ; find /var/www/html -type f -exec chmod 644 {} ;

En utilisant la méthode symbolique:

find /var/www/html -type d -exec chmod u=rwx, go=rx {} ; find /var/www/html -type f -exec chmod u=rw, go=r {} ;

La commande find recherche des fichiers ou des répertoires sous /var/www/html et transmet chaque fichier ou répertoire trouvé à la commande chmod pour définir les autorisations.

Lorsque vous utilisez find avec -exec , la commande chmod est exécutée pour chaque entrée trouvée. Utilisez la commande xargs pour accélérer l'opération en passant plusieurs entrées à la fois:

find /var/www/html -type d -print0 | xargs -0 chmod 755 find /var/www/html -type d -print0 | xargs -0 chmod 755 find /var/www/html -type f -print0 | xargs -0 chmod 644 find /var/www/html -type f -print0 | xargs -0 chmod 644

Conclusion

La commande chmod avec les options -R vous permet de modifier récursivement les autorisations du fichier.

Pour définir récursivement les autorisations des fichiers en fonction de leur type, utilisez chmod en combinaison avec la commande find .

terminal chmod