Мне хотелось иметь права на запись для определенной папки, файла и всех их потомков.
Мне хотелось бы, чтобы ВСЕМ файлам и папкам можно было рекурсивно предоставить следующие разрешения: 777
Итак, я попробовал:
chmod -r 777 ~/Folder/app/
Затем я получил что-то вроде:
chmod: 777: No such file or directory
Затем я пошел ~/Folder/app/
и попытался сделать ls -la
проверку разрешений.
Я получил:
.: Permission Denied
Затем я сделал:
sudo ls -la
и затем я увидел, что... специальная папка имеет разрешения: 777, но не другие.
Как я могу это вернуть, не удаляя папку ~/Folder/app/
?
Я имею в виду: Как мы можем снова разрешить ls работать без ввода sudo внутри этой папки? И как-то исправить беспорядок, который я устроил, используя -r вместо -R?
решение1
Как я уже отметил в своих комментариях, вам нужно указать либо , --recursive
либо -R
(заглавная буква R), чтобы chmod
это работало рекурсивно.
-r
(строчная буква R) означаетудалить разрешения на чтение(по крайней мере, насколько я понимаю). Эта операция затем будет применена кследующийпараметр, который является 777
.
Итак, ваш вызов удалит разрешения на чтение из файла с именем 777
. Этот файл не существует, поэтому и появляется сообщение об ошибке
chmod: 777: No such file or directory
Я не уверен, было ли chmod
это прекращено или оно попыталосьудалить разрешения на чтениеизследующийпараметр ~/Folder/app/
.
В последнем случае это было бы дажеудалятьразрешения на чтение из вашей папки, делая именно то,противоположныйтого, чего вы хотели изначально :)
Теперь, чтобы решить эту проблему, просто используйтеправильныйсинтаксис:
chmod --recursive 777 ~/Folder/app/
Это вернет разрешения на чтение (и применит ваш режим 777 ко всем дочерним элементам этой папки). Обратите внимание наКомментарий Денниса Уильямсона, вам почти никогда не придется устанавливать режим 777.