установить права на чтение и запись в папку и все ее родительские каталоги

Мне нужно установить права на чтение и запись для root пользователя в subfolderN каталога subfolderN и все ее родительские папки до root .

Я могу сделать это руками:

 $ sudo chmod +rx /root/subfolder1/subfolder2/subfolderN $ sudo chmod +rx /root/subfolder1/subfolder2 $ sudo chmod +rx /root/subfolder1 $ sudo chmod +rx /root 

Но если N большой, я устал. Как сделать это автоматически с помощью одной команды?

4 Solutions collect form web for “установить права на чтение и запись в папку и все ее родительские каталоги”

Это можно легко сделать в оболочке, начиная с поддира и двигаясь вверх:

 f=/root/subfolder1/subfolder2/subfolderN while [[ $f != "/" ]]; do chmod +rx $f; f=$(dirname $f); done; 

Это начинается с любого файла / каталога, который вы устанавливаете f тоже, и работает в каждом родительском каталоге, пока не встретит «/» (или что бы вы ни установили строку в условии цикла). Это не chmod "/".

С csh , tcsh , ksh , zsh , bash или fish :

 sudo chmod +rx /root{,/subfolder1{,/subfolder2{,/subfolderN}}} 

С zsh :

 f=/root/subfolder1/subfolder2/subfolderN until [[ $f = / ]] {chmod +rx $f; f=$f:h;} 

Я не знаю, что вы пытаетесь сделать, но лучше, чем вы не принимаете рекурсивную ситуацию . Тем не менее, прочитайте фактический ответ:

Умм … почему бы просто не использовать рекурсивный.

 sudo chmod -R +rx /root 

Или, если вам это не нравится, вы можете дать chmod несколько каталогов:

 sudo chamod +rx /root /root/subfolder1 /root/subfolder1/subfolder2 /root/subfolder1/subfolder2/subfolderN 

Ну, вы могли бы сделать что-то более сложное, как:

 echo "/root/subfolder1/subfolder2/subfolderN" | perl -anF'/' -e 'while($#F>0){@b=join("/",@F);`chmod +rx @b`; pop @F}' 

Чтобы увидеть, что это будет делать, замените вызов chmod на печать:

 $ echo "/root/subfolder1/subfolder2/subfolderN" | perl -alnF'/' -e 'while($#F>0){@b=join("/",@F);print "chmod +rx @b"; pop @F}' chmod +rx /root/subfolder1/subfolder2/subfolderN chmod +rx /root/subfolder1/subfolder2 chmod +rx /root/subfolder1 chmod +rx /root 
  • Как я должен использовать Bash для Ubuntu в среде Windows?
  • Как отлаживать разрешения файловой системы?
  • Почему я не могу создать файл в каталоге, где у меня есть доступ к записи в группе?
  • не удалось прочитать файл на ntfs
  • setfacl неправильно изменяет групповые разрешения
  • Разрешения для файлов при установке модуля python
  • Btrfs снимок, поскольку пользователь не разрешен
  • Как удалить неизвестный файл, который не имеет соответствующих разрешений
  • Почему каталог должен иметь липкий бит без исполняемого бита?
  • Как процесс (user1) может записывать журнал в каталог (root)
  • Как запретить пользователям удалять каталог?
  • Найдите, какие каталоги каждой группы могут получить доступ
  • Linux и Unix - лучшая ОС в мире.