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/somedir
zawsze kończy się niepowodzeniem (bez względu na to, czy ma obiekty potomne, czy nie), podczas gdy się sudo chmod -R -r /tmp/somedir
powiedzie. Dlaczego potrzebuję uprawnień sudo / admin do rekurencyjnego usuwania uprawnień do odczytu z katalogu?!?
chmod -R -r /tmp/somedir
nie powiedzie, uprawnienia do odczytu są cofane /tmp/somedir
, ale nie dla żadnych podkatalogów (w przypadku, gdy takie istnieją) - sudo
jest 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.