Comment définir chmod pour un dossier et tous ses sous-dossiers et fichiers? [fermé]

y a-t-il un moyen de définir chmod 755 pour /opt/lampp/htdocs et tout son contenu, y compris les sous-dossiers et les fichiers?

aussi, à l'avenir, si je crée un nouveau dossier ou un nouveau fichier dans htdocs , comment les permissions de celui-ci peuvent-elles être automatiquement définies à 755 ?

Cela fonctionne, mais seulement pour ce dossier:

chmod 775 /opt/lampp/htdocs
1350
demandé sur jww 2010-09-18 06:31:58

16 réponses

les autres réponses sont correctes, en ce que chmod -R 755 définira ces permissions à tous les fichiers et sous-dossiers dans l'arbre. mais pourquoi diable voudriez-vous ? Il peut faire sens pour les répertoires, mais pourquoi mettre le bit d'exécution sur tous les fichiers?

je soupçonne que ce que vous voulez vraiment faire est de mettre les répertoires à 755 et soit laisser les fichiers seuls ou les mettre à 644. Pour cela, vous pouvez utiliser la commande find . Exemple:

pour changer tous les répertoires à 755 ( drwxr-xr-x ):

find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

pour changer tous les fichiers en 644 ( -rw-r--r-- ):

find /opt/lampp/htdocs -type f -exec chmod 644 {} \;
2327
répondu WombleGoneBad 2018-09-26 10:48:25

cochez l'option-R

chmod -R <permissionsettings> <dirname>

dans le futur, vous pouvez gagner beaucoup de temps en vérifiant d'abord la page de manuel:

man <command name>

donc dans ce cas:

man chmod
658
répondu Steve Robillard 2013-09-25 02:47:26

si vous voulez définir les permissions sur tous les fichiers à a+r , et tous les répertoires à a+x , et faire cela récursivement à travers l'arborescence complète du sous-répertoire, utilisez:

chmod -R a+rX *

le X (c'est-à-dire capital X , pas petit x !) est ignoré pour les fichiers (sauf s'ils sont déjà exécutables pour quelqu'un) mais est utilisé pour les répertoires.

298
répondu Pete 2013-11-11 20:57:02

vous pouvez utiliser -R avec chmod pour la traversée récursive de tous les fichiers et sous-dossiers.

vous pourriez avoir besoin de sudo car il dépend de lampe étant installé par l'utilisateur courant ou un autre:

sudo chmod 755 -R /opt/lampp/htdocs
109
répondu ravi ranjan 2016-07-05 13:24:06

À l'ensemble de tous les sous-dossiers (de manière récursive) utilisez-R

chmod 755 /folder -R

et utilisez umask pour définir la valeur par défaut aux nouveaux dossiers / fichiers cd /dossier umask 755

67
répondu Topera 2010-09-18 02:43:19

chmod 755 -R /opt/lampp/htdocs définira récursivement les permissions. Il n'y a aucun moyen de définir automatiquement les permissions pour les fichiers uniquement dans ce répertoire qui sont créés après que vous ayez défini les permissions, mais vous pouvez modifier vos permissions par défaut pour l'ensemble du système en définissant umask 022 .

47
répondu sleepynate 2010-09-18 02:38:42

la commande récursive correcte est:

sudo chmod 755 -R /opt/lampp/htdocs

-R : changez chaque sous-dossier incluant le dossier courant

44
répondu Pramendra Gupta 2017-10-11 09:34:03

vous pourriez vouloir considérer cette réponse donnée par nik sur superuser et utiliser "un chmod" pour tous les fichiers / dossiers comme ceci:

chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)
22
répondu Iam Zesh 2017-03-20 10:18:14

utiliser:

sudo chmod 755 -R /whatever/your/directory/is

cependant, faites attention avec ça. Il peut vraiment vous blesser si vous changez les permissions des mauvais dossiers/dossiers.

20
répondu Nate Starner 2013-09-25 02:49:26

Voici une autre façon de définir les répertoires à 775 et les fichiers à 664.

find /opt/lampp/htdocs \
\( -type f -exec chmod ug+rw,o+r {} \; \) , \
\( -type d -exec chmod ug+rwxs,o+rx {} \; \)

il peut sembler long, mais il est assez cool pour trois raisons:

  1. scanne le système de fichiers une seule fois plutôt que deux.
  2. fournit un meilleur contrôle sur la façon dont fichiers sont traités par rapport à la façon dont répertoires sont traités. C'est utile quand on travaille avec spécial les modes tels que le sticky bit , que vous voulez probablement appliquer aux répertoires mais pas aux fichiers.
  3. utilise une technique qui sort directement des pages man (voir ci-dessous).

notez que je n'ai pas confirmé la différence de performance (le cas échéant) entre cette solution et celle de simplement utiliser deux commandes find (comme dans la solution de Peter Mortensen). Cependant, voir un exemple similaire dans le manuel est encourageant.

exemple de man find page:

find / \
\( -perm -4000 -fprintf /root/suid.txt %#m %u %p\n \) , \
\( -size +100M -fprintf /root/big.txt %-10s %p\n \)

Traverse the filesystem just once, listing setuid files and  direc‐
tories into /root/suid.txt and large files into /root/big.txt.

Cheers

19
répondu chrisfargen 2013-11-17 07:04:26

chmod -R 755 directory_name fonctionne, mais comment garder les nouveaux fichiers à 755 aussi? Les permissions du fichier deviennent la permission par défaut.

11
répondu Sanchit Gupta 2017-08-22 12:03:34

vous voulez vous assurer que les fichiers et répertoires appropriés sont chmod-ed/permissions pour ceux sont appropriés. Pour tous les répertoires que vous voulez

find /opt/lampp/htdocs -type d -exec chmod 711 {} \;

et pour toutes les images, JavaScript, CSS, HTML...eh bien, vous ne devriez pas exécuter. Utilisez

chmod 644 img/* js/* html/*

mais pour tout le code logique (par exemple le code PHP), vous devriez définir des permissions telles que l'utilisateur ne peut pas voir ce code:

chmod 600 file
9
répondu NikolaiDante 2014-06-22 22:07:22

pour Mac OS X 10.7 (Lion), il est:

chmod -R 755 /directory

et oui, comme tous les autres disent, faites attention en faisant cela.

7
répondu wmartin 2013-09-25 02:56:19

je pense Qu'Adam se demandait comment changer la valeur umask pour tous les processus qui lient pour fonctionner sur /opt/lampp/htdocs répertoire.

le masque de mode Création de fichier Utilisateur (umask) est utilisé pour déterminer la permission de fichier pour les fichiers nouvellement créés. Il peut être utilisé pour contrôler le fichier par défaut d'autorisation pour les nouveaux fichiers.

donc, si vous utilisez une sorte de programme de ftp pour télécharger des fichiers dans /opt/lampp/htdocs vous devez configurer votre serveur ftp à utiliser umask vous vouloir.

si les fichiers / répertoires sont créés par exemple par php, vous devez modifier le code php

<?php
umask(0022);
// other code
?>

si vous voulez créer de nouveaux fichiers / dossiers à partir de votre session bash, vous pouvez définir la valeur umask dans votre profil shell ~/.bashrc Ou vous pouvez configurer umask dans le fichier /etc/bashrc ou /etc/profile pour tous les utilisateurs. ajoutez ce qui suit au fichier: umask 022

Sample umask Values and File Creation Permissions
If umask value set to   User permission     Group permission     Others permission
000                         all              all                   all
007                         all              all                   none
027                         all          read / execute            none

et pour modifier les permissions pour les fichiers déjà créés, vous pouvez utiliser trouver. Espérons que cette aide.

5
répondu Viktor 2015-12-21 09:03:06

il y a deux réponses pour trouver des dossiers et leur appliquer chmod . Le premier est find le fichier et appliquer chmod comme il trouve (comme suggéré par @WombleGoneBad).

find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

la deuxième solution est de générer la liste de tous les fichiers avec la commande find et de fournir cette liste à la commande chmod (comme suggéré par @lamgesh).

chmod 755 $(find /path/to/base/dir -type d)

ces deux versions fonctionnent bien tant que le nombre de les fichiers retournés par la commande find sont petits. La deuxième solution semble grande à l'oeil et plus lisible que la première. S'il y a un grand nombre de fichiers, la deuxième solution retourne l'erreur: Argument list too long.

donc ma suggestion est

  1. utilisez chmod -R 755 /opt/lampp/htdocs si vous voulez changer les permissions de tous les fichiers et répertoires à la fois.
  2. Utiliser find /opt/lampp/htdocs -type d -exec chmod 755 {} \; si le nombre de fichiers que vous utilisez est très grand. L'option -type x recherche uniquement un type de fichier spécifique, où d est utilisé pour trouver le répertoire, f pour le fichier et l pour le lien.
  3. utiliser chmod 755 $(find /path/to/base/dir -type d) autrement
  4. mieux utiliser le premier dans n'importe quelle situation
4
répondu Prabhu 2013-10-21 19:58:49

c'est très simple.

dans Terminal aller au gestionnaire de fichiers. exemple: sudo nemo . Aller /opt/ puis cliquez sur propriétés → Permission . puis autre . Enfin, Modifier pour créer et supprimer et fichier acess pour lire et écrire et cliquez sur le bouton Appliquer... Et le travail.

2
répondu Debian. 2014-06-16 09:57:54