Любезно не рассматривайте это как дубликат. Я создал папку как корень в каталоге,/tmp/test/, а также некоторые подпапки также. Я изменил разрешение читать и записать для всех пользователей и групп, включая корень.
$ sudo chmod -R 666 /tmp/test/
при издании $ ls -l /tmp/test/ ls: cannot access '/tmp/test/db': Permission denied ls: cannot access '/tmp/test/sp': Permission denied total 0 d????????? ? ? ? ? ? db d????????? ? ? ? ? ? sp
Я добираюсь как это, Здесь я не могу создать новый файл или каталог.
$ printf 'test' >/tmp/test/sp/test
удар:/tmp/test/sp/test: Разрешение отклонило, Это звучит сбивающим с толку меня.
Для каталогов требуется флаг исполняемого файла, поэтому попробуйте sudo chmod -R 776 /tmp/test
.
Linux / Unix требует бит выполнения, чтобы пользователь мог войти в каталог и получить доступ к его содержимому, в том числе перечислить, что внутри него. Флаги выполнения каталога ведут себя иначе, чем флаг чтения файла.
Однако файлы внутри могут быть 666
.
Полномочия каталога немного отличаются, чем стандартные полномочия файла. Вместо читал/писал/выполнял как файл, биты полномочий каталога следующие:
4 (r--)
: Содержание каталога можно показать (ls
)
2 (-w-)
: Содержание каталога может быть изменено (создают/удаляют/переименовывают)
1 (--x)
: С каталогом можно получить доступcd
или подобный.
Обратите внимание на это каталогами, w
разрешение не вступит в силу если x
также установлен.
В Вашем случае Ваше разрешение установлено на бит 6 (rw-
), который имеет следующие эффекты:
cd
к той папке или любым дочерним папкамx
не предоставлен),Для фиксации этого просто повторно добавьте x
бит в файл:
chmod a+x /path/to/file
Это также, почему разрешение папки по умолчанию также 0755
или 0775
в то время как файлы имеют тенденцию быть 0644
или 0664
: папки, в отличие от файлов, эффективно бесполезны без x
.