Подтвердить что ты не робот

Chmod: невозможно прочитать каталог `. ': Permission denied

Я пытаюсь рекурсивно изменить разрешение каталогов и подкаталогов для каталога "data" и запуская следующую ошибку. Кто-нибудь может предоставить входы при ошибке ниже?

<username:/local/mnt/workspace/data>chmod -R 0644 .
chmod: cannot read directory `.': Permission denied
4b9b3361

Ответ 1

Каталогам требуется разрешение на выполнение, чтобы просмотреть их содержимое.

Из http://content.hccfl.edu/pollock/AUnix1/FilePermissions.htm

Вы можете думать о чтении и выполнении в каталогах таким образом: каталоги - это файлы данных, содержащие две части информации для каждого файла внутри, имя файла и его номер inode. Для доступа к именам файлов в каталоге требуется разрешение на чтение. Для доступа к inodes файлов в каталоге требуется разрешение Execute (a.k.a. search), если вы уже знаете имя файла.

При изменении разрешения каталога на 644 вы не сможете прочитать файлы в этом каталоге, хотя вы можете прочитать этот каталог, чтобы увидеть его.

Вам нужно сделать это:

$ chmod -R 0755 .

Лучше всего использовать разрешение строки, если вы просто хотите отключить

В противном случае вы можете увидеть каталог, но не получить доступ к информации в этом каталоге.

Возможно, вам лучше использовать относительные разрешения вместо абсолютных разрешений:

$ chmod -R go-w .

Удалит права на запись из группы и другие, но не коснется разрешения на выполнение.

Вы также можете использовать find только для установки каталогов или просто для установки файлов:

$ find . -type d -exec chmod 755 {} \;

Это коснется только каталогов, установит разрешение на чтение и выполнение всех каталогов и установит права на запись для владельца. Таким образом, вы не устанавливаете разрешение на выполнение для самих файлов.

Ответ 2

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