Почему я не могу chmod эти файлы, которые я мог ранее?

Я пытался добавить разрешения на выполнение для sh файлов в папке. Для этого я ошибочно использовал:

find . -print0 -iname '*.sh' | xargs -0 chmod -v 744

и выход был:

 mode of `.' changed from 0755 (rwxr-xr-x) to 0744 (rwxr--r--) mode of `./codis.sh' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--) mode of `./ne fil.sw' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--) mode of `./.whois1.sh.swo' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--) mode of `./new file' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--) mode of `./ezik.sh' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--) mode of `./.whois1.sh.swp' changed from 0600 (rw-------) to 0744 (rwxr--r--) mode of `./whois1.sh' retained as 0744 (rwxr--r--) 

Теперь я знаю, что правильное использование для части поиска было

find . -iname '*.sh' -print0

Поэтому я создал другую находку:

find . \! -iname '*.sh' -print0 | xargs -0 chmod 600

так что я могу отменить разрешения для не-sh файлов (да, я вижу, что некоторые файлы имеют 644 perms, а не 600, но теперь это не имеет значения). Выход для этой команды:

 chmod: cannot access `./ne fil.sw': Permission denied chmod: cannot access `./.whois1.sh.swo': Permission denied chmod: cannot access `./new file': Permission denied chmod: cannot access `./.whois1.sh.swp': Permission denied 

Я тоже использовал sudo но все равно ничего …

Я вижу, что я не понимаю разрешений правильно … Если я правильно понимаю, мне нужны x permisions для каталога direc , чтобы выполнить команды в указанном каталоге.

  • rsync + chmod только выбранные файлы
  • Доступ к записи без доступа для чтения
  • Как проверить, какую группу Apache я могу использовать для написания веб-сервера?
  • Почему я не могу удалить свои файлы?
  • Зачем использовать `chmod 644` вместо` chmod u = rw, go = r, ... `?
  • Как рекурсивно изменять разрешения для всех каталогов внутри текущего каталога?
  • Разрешение 0000 в / var / www / html через sFTP
  • Это хорошая идея установить права доступа к файлам на 640 на раздел Windows?
  • One Solution collect form web for “Почему я не могу chmod эти файлы, которые я мог ранее?”

    Ваш find cmd также находит текущий каталог « . ». Тогда права этого каталога будут установлены в 600 и, следовательно, вы потеряете права касаться файлов в этом каталоге.

    Итак, cd .. , chmod 700 каталог, а затем запустите вашу поисковую find , которая теперь исключает текущий каталог, например:

     find . \! -path . \! -iname '*.sh' -print0 | xargs -0 chmod 600 
    Linux и Unix - лучшая ОС в мире.