Так, Mac має багато вдосконалень для Unix в області файлів. Ігноруючи всю річку з вилкою ресурсу , яка більше не використовується, є:
- на стандартні дозволу Unix
ugo
rwx
і так далі. Застосовуються звичайні інструменти Unix.
- ACL , видимий з
ls -le
і мінливий з chmod [ -a | +a | =a ]
.
- прапори файлів, які можна переглядати за допомогою "
ls -lO
Заголовок о, не нуль" та змінні за допомогою chflags
.
- розширені атрибути , доступні для перегляду
ls -l@
(лише ключі атрибутів), а також видимі та змінні xattr
. (Використовуйте xattr -h
для допомоги, якщо man xattr
нічого не дає.)
- Починаючи з OS X 10.11 "El Capitan", захист цілісності системи (SIP) додатково захищає деякі файли від змін від звичайних процесів, навіть коли використовується
sudo
для запуску як root
. Файли, захищені SIP, будуть перераховані ls -lO
як такі, що мають restricted
прапор та / або будуть вказані ls -l@
як com.apple.rootless
атрибути.
Ви можете відмовити в операціях над файлом через дозволи Unix, ACL, прапори файлів або SIP. Щоб повністю розблокувати файл:
sudo chmod -N file # Remove ACLs from file
sudo chmod ugo+rw file # Give everyone read-write permission to file
sudo chflags nouchg file # Clear the user immutable flag from file
sudo chflags norestricted file # Remove the SIP protection from file
sudo xattr -d com.apple.rootless file # Remove SIP protection from file
Якщо ввімкнено захист цілісності системи (SIP), sudo chflags norestricted
а sudo xattr -d com.apple.rootless
також поверне помилку "Операція не дозволена". Щоб очистити прапор та / або атрибут, потрібно завантажити в macOS Recovery і виконати команди з терміналу (можливо, вам спочатку доведеться скористатися Disk Utility для розблокування та монтажу завантажувального диска, а потім пам’ятайте, що ваші файли будуть знаходитися під /Volumes/Macintosh HD
будь-яким іншим завантаженням. диск названо) або відключити SIP взагалі, а потім перезавантажте і команди повинні працювати. Однак майте на увазі, що майбутні оновлення ОС, ймовірно, відновлять restricted
прапор та com.apple.rootless
атрибут усіх файлів, з яких ви його видалили.
Вимкнення SIP не рекомендується, оскільки це знімає багато захисту від зловмисного програмного забезпечення та випадкових пошкоджень, плюс це не потрібно, коли ви можете просто зняти захист на основі файлів. Якщо ви відключите SIP, ввімкніть його знову після завершення внесення змін.
Зауважте, що якщо ls -lO
показано, що schg
прапор встановлений, вам доведеться перейти в режим однокористувача, щоб зняти його. Я не збираюся вступати в це тут, оскільки виникають більші запитання щодо того, чому у файлі встановлений цей прапор і чому ви намагаєтеся з ним возитися і які наслідки будуть.
sudo chgrp wheel ./entries
?