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

Мне нужно установить права на чтение и запись для 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 большой, я устал. Как сделать это автоматически с помощью одной команды?

  • использование root в mkdir в другом домашнем каталоге пользователей
  • Как я могу узнать, почему у меня есть разрешения на чтение файла?
  • разрешения 755 on / home / <пользователь> /
  • Каковы варианты использования файлов только для записи и записи-выполнения?
  • Перемещение файлов, не подлежащих записи, и перемещение непереписываемых каталогов
  • Как у группы есть доступ к чему-то?
  • Вход для суперпользователя для запуска скрипта
  • Загадочные ошибки разрешения Samba после миграции службы
  • 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 
    Interesting Posts

    Существуют ли какие-либо программы создания комиксов?

    Ошибки запуска MySQL: ERROR 1005

    Изменение настроек брандмауэра после установки CentOS через kickstart

    Подключения к серверу мониторинга – проблема форматирования Netstat

    Аккумуляторная клавиатура для ноутбука Toshiba X775-3DV78

    Как запустить несколько файлов конфигурации через скрипт?

    Почему каталог unix bin назван таким образом?

    ошибка разрешения с php / nginx и не используя www-data

    Как автоматизировать загрузку последнего файла, загруженного в папку Google Диска?

    Объединение двух сеансов экрана

    Как настроить backspace, чтобы идти вверх, а не обратно в Thunar?

    Временные разрешения при установке DokuWiki?

    Как ядро ​​решает, какие страницы совершают обмен?

    Получение черных элементов управления при запуске linux на vmware на окнах

    Как добавить несколько строк в файл после шаблона, который также является многострочным?

    Linux и Unix - лучшая ОС в мире.