Я пытаюсь читать системные файлы с Mac, используя electronic / node.js, как я сейчас это делаю.
fs.writeFileSync(`/Users/${os_username}/sync_message_images/chat.db`,fs.readFileSync(`/Users/${os_username}/Library/Messages/chat.db`));
Но я продолжаю получать ошибку EACCESS, я считаю, что это потому, что это системный файл, потому что я не могу скопировать его с терминала или с помощью python без root. Могу ли я предоставить приложению root-доступ? Даже если пользователю нужно ввести пароль при запуске, ничего страшного.
Я даже пробовал использовать sudo-prompt, и у меня по-прежнему возникает та же проблема.
Мне он нужен только для работы на macOS.
Мне все равно. По-прежнему нет оправдания написанию плохого кода. Но если у вас EACCESS, то это системный способ сказать "Тебе здесь не место !!". Так что, если вы просите процесс с разными разрешениями получить доступ к чему-то, к чему ему не предоставлен доступ, это ожидаемо. Смена на "root" не выход. Изменение 1. Химическая завивка, под которой запущен процесс. Или 2. Разрешить групповой доступ к месту, где процесс является частью этой группы. Также, к вашему сведению, каждая ОС, о которой я знаю, где-то имеет доступный $HOME.
На самом деле это проблема, не связанная с последней версией macOS. Если у кого-то еще есть эта проблема, вы должны предоставить приложению полный доступ к диску. Сделайте это, перейдя в настройки> Безопасность> Конфиденциальность> Полный доступ к диску> Предоставить вам полный доступ к диску .app.
@NeilLunn есть некоторые случаи, когда root-доступ является решением; например, доступ к контактам GPIO (через / dev / gpiomem) на Raspberry Pi возможен только с root-доступом. Для меня весь смысл использования Electron заключается в том, чтобы позволить создать настольное приложение, построенное с помощью React и т. д., Которое может иметь root-доступ к некоторым устройствам в системе.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


На самом деле это проблема, не связанная с последней версией macOS. Если у кого-то еще есть эта проблема, вы должны предоставить приложению полный доступ к диску. Сделайте это, перейдя в настройки> Безопасность> Конфиденциальность> Полный доступ к диску> Предоставить вам полный доступ к диску .app.
/Users/${os_username}/мне не кажется очень портативным между разными ОС. Вы можете поискать множество материалов по этой теме. Суть в том, что процесс, скорее всего, работает с разрешениями, отличными от разрешения, к которому он пытается получить доступ, или этот путь просто не существует. УСТРАНИТЕ ЭТУ ПРОБЛЕМУ, вместо того чтобы искать «молоток», который является переходом на «корень».