Uaktualniłem z El Capitan do High Sierra (beta 9). Na El Capitan uruchomienie polecenia chmod -R -r <path to dir>działa poprawnie (rekurencyjnie cofanie uprawnień do odczytu). W High Sierra pojawia się komunikat o błędzie bez sensu chmod: <path to dir>: Permission denied.
Należy pamiętać, że dodatki takie jak polecenia chmod -R +r <path to dir> nie działają dobrze na High Sierra.
Przetestowałem to na głównym woluminie systemowym mojego wewnętrznego dysku MPB (system plików APFS, ponieważ instalator konwertuje woluminy HFS + automatycznie na dyski SSD) i na dysku HFS + RAM. Zachowanie było takie samo.
Czy to jest warte zgłoszenia błędu do Apple? Czy coś brakuje?
/tmp/somefolder, a następnie chmod -R -r /tmp/somedirzawsze kończy się niepowodzeniem (bez względu na to, czy ma obiekty potomne, czy nie), podczas gdy się sudo chmod -R -r /tmp/somedirpowiedzie. Dlaczego potrzebuję uprawnień sudo / admin do rekurencyjnego usuwania uprawnień do odczytu z katalogu?!?
chmod -R -r /tmp/somedirnie powiedzie, uprawnienia do odczytu są cofane /tmp/somedir, ale nie dla żadnych podkatalogów (w przypadku, gdy takie istnieją) - sudojest wymagane, aby naprawdę dokonać rekurencyjnej zmiany uprawnień. To nie ma żadnego sensu i sugeruje, że chmod jest wdrożony bardzo słabo (i z jakiegoś powodu nigdy go nie odkryto ... to po prostu nie może być prawda!). Wydaje mi się, że chmod najpierw stosuje operację do katalogu najwyższego poziomu, a następnie nie stosuje jej do podkatalogów (a nawet kończy się niepowodzeniem, jeśli nie ma żadnych).
find <path> -d -exec chmod -r {} ";"jest droga.