J'ai besoin de définir des autorisations de lecture et d'écriture pour l' root
utilisateur sur le répertoire subfolderN
et tous ses dossiers parents jusqu'à root
.
Je peux le faire à la main:
$ sudo chmod +rx /root/subfolder1/subfolder2/subfolderN
$ sudo chmod +rx /root/subfolder1/subfolder2
$ sudo chmod +rx /root/subfolder1
$ sudo chmod +rx /root
Mais si N
c'est gros je suis fatigué. Comment faire automatiquement par une seule commande?
permissions
directory
Maxim Yefremov
la source
la source
/root
monde lisible.Réponses:
Cela peut être fait facilement dans le shell, en commençant dans le sous-répertoire et en remontant:
Cela commence avec le fichier / répertoire que vous définissez aussi, et fonctionne sur chaque répertoire parent, jusqu'à ce qu'il rencontre "/" (ou tout ce que vous définissez la chaîne dans la condition de la boucle). Il ne modifie pas "/".
la source
f
c'est un chemin relatif, et je veux m'arrêter à quoi il est relatif au lieu de/
?$f
ouifoo/bar
, changera-$f
t- il jamais.
? Ouidirname
. MerciAvec
csh
,tcsh
,ksh
,zsh
,bash
,fish
ouyash -o braceexpand
:Avec
zsh
:Ou vous pouvez définir une fonction de qualificatif glob comme:
A utiliser par exemple comme:
Notez que cela
chmod +rx
est affecté par l'umask. Si vousumask
ne l'incluez pas007
, cela rendrait le/root
répertoire lisible et accessible au monde, ce qui est une mauvaise idée./root
est généralement pour les choses privées du super-utilisateur, c'est une mauvaise idée de l'exposer.la source
,
en{,/subfolder}
fait?/subfolder
;/root{,/subfolder}
produit ainsi/root
et/root/subfolder
sh
Eh bien, vous pourriez faire quelque chose d'un peu plus complexe comme:
Pour voir ce que cela va faire, remplacez l'
chmod
appel par print:la source
Je ne sais pas ce que vous essayez de faire, mais c'est mieux que vous ne prenez pas le récursif à la légère . Cela dit, lisez la réponse:
Umm ... pourquoi ne pas simplement utiliser récursif.
Ou si vous ne l'aimez pas, vous pouvez donner
chmod
plusieurs répertoires:la source
chmod -R /root
change tout sous/root
- y compris les fichiers normaux et tous les répertoires. La question consiste à modifier une chaîne de répertoires uniquement.