chmod -R -r не работает на macOS High sierra

1628
NameZero912

Я обновился с Эль-Капитана до Высокой Сьерры (бета-версия 9). На El Capitan выполнение команды chmod -R -r <path to dir>работает нормально (рекурсивно отменяет права на чтение). На Высокой Сьерре я получаю сообщение об ошибке без смысла chmod: <path to dir>: Permission denied.

Обратите внимание, что добавка команды, как chmod -R +r <path to dir> сделать работу отлично на High Sierra.

Я проверил это на основном системном томе моего внутреннего диска MPB (файловая система APFS, поскольку установщик автоматически преобразует тома HFS + на твердотельные накопители) и на RAM-диске HFS +. Поведение было таким же.

Это достойно сообщения об ошибке в Apple? Я что-то пропустил?

0
Любая папка или конкретная? Я думаю SIP ... Tetsujin 6 лет назад 1
Возможно ли, что High Sierra сначала начнет вносить изменения в папку TOP? То есть, может быть, он на самом деле удалил права на чтение в верхней папке, и это препятствовало дальнейшему снижению chmod? jimtut 6 лет назад 1
Хм, после еще нескольких тестов я обнаружил, что проблема также существует с El Capitan. Я обращаюсь к обычной пустой папке, которую я создал, на которую у меня (по умолчанию) есть разрешения drwxr-xr-x (итого 755 по сути). Допустим, эта папка находится в `/ tmp / somefolder`, тогда` chmod -R -r / tmp / somedir` всегда терпит неудачу (независимо от того, есть ли у нее дочерние объекты или нет), тогда как `sudo chmod -R -r / tmp / Somedir` удается. Зачем мне нужны sudo / admin-permissions для рекурсивного удаления прав на чтение из dir?!? NameZero912 6 лет назад 0
После еще нескольких экспериментов я могу сказать, что, хотя `chmod -R -r / tmp / somedir` не работает, разрешения на чтение отменяются для` / tmp / somedir`, но не для каких-либо подкаталогов (в случае, если есть любой) - `sudo` требуется для рекурсивного изменения разрешения. Это не имеет никакого смысла, и предполагает, что chmod реализован ** очень ** плохо (и это никогда не было обнаружено по какой-то причине ... это просто не может быть правдой!). Мне кажется, что chmod сначала применяет операцию к каталогу самого высокого уровня, а затем не может применить ее к подкаталогам (и даже терпит неудачу, если их нет). NameZero912 6 лет назад 0
`найти -d -exec chmod -r {} ";" `это путь. NameZero912 6 лет назад 0

0 ответов на вопрос