Как получить доступ к системным файлам с помощью node.js / electronic?

Я пытаюсь читать системные файлы с 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, и у меня по-прежнему возникает та же проблема.

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

Мне он нужен только для работы на macOS.

kyle hoell 19.11.2018 06:06

Мне все равно. По-прежнему нет оправдания написанию плохого кода. Но если у вас EACCESS, то это системный способ сказать "Тебе здесь не место !!". Так что, если вы просите процесс с разными разрешениями получить доступ к чему-то, к чему ему не предоставлен доступ, это ожидаемо. Смена на "root" не выход. Изменение 1. Химическая завивка, под которой запущен процесс. Или 2. Разрешить групповой доступ к месту, где процесс является частью этой группы. Также, к вашему сведению, каждая ОС, о которой я знаю, где-то имеет доступный $HOME.

Neil Lunn 19.11.2018 06:10

На самом деле это проблема, не связанная с последней версией macOS. Если у кого-то еще есть эта проблема, вы должны предоставить приложению полный доступ к диску. Сделайте это, перейдя в настройки> Безопасность> Конфиденциальность> Полный доступ к диску> Предоставить вам полный доступ к диску .app.

kyle hoell 19.11.2018 06:40

@NeilLunn есть некоторые случаи, когда root-доступ является решением; например, доступ к контактам GPIO (через / dev / gpiomem) на Raspberry Pi возможен только с root-доступом. Для меня весь смысл использования Electron заключается в том, чтобы позволить создать настольное приложение, построенное с помощью React и т. д., Которое может иметь root-доступ к некоторым устройствам в системе.

Oliver Coleman 10.10.2021 05:58
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
2 225
1

Ответы 1

На самом деле это проблема, не связанная с последней версией macOS. Если у кого-то еще есть эта проблема, вы должны предоставить приложению полный доступ к диску. Сделайте это, перейдя в настройки> Безопасность> Конфиденциальность> Полный доступ к диску> Предоставить вам полный доступ к диску .app.

Другие вопросы по теме