По ошибке разрешения отказано, даже если программирование должно иметь доступC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 По ошибке разрешения отказано, даже если программирование должно иметь доступ

Сообщение Anonymous »

Я пишу демон контроллера в C ++ для Home Automation, который, наконец, будет работать на Raspberry Pi с Raspberry Pi OS. Он начинается с корневых разрешений, так как после начала он должен считывать сертификат SSL, который предоставляется только root, доступ к чтению.
После того, как сертификат SSL прочитал, демон должен переключаться на пользователь «Pvmonitor», поскольку разрешения корневых разрешений больше не нужны. Это делается < /p>

Код: Выделить всё

setuid( iUid );
И я проверил с помощью PS, что процесс запускается как пользователь «pvmonitor».

Код: Выделить всё

ls -la /etc/SmartHome/
total 24
drwxrwx---+   2 pvmonitor www-data 4096 Jul  5 21:47 .
drwxr-xr-x+ 107 root      root     4096 Jul 15 09:44 ..
-rwxrwx---+   1 pvmonitor www-data  705 Jul  5 21:47 coverd.conf
< /code>
Raspberry Pi загружается из сети, а файловая система монтируется из NAS, который обеспечивает ACL. Также ACL предоставляет разрешение на доступ к пользователю Pvmonitor: < /p>
getfacl /etc/SmartHome/coverd.conf
getfacl: Removing leading '/' from absolute path names
# file: etc/SmartHome/coverd.conf
# owner: pvmonitor
# group: www-data
[...]
user:pvmonitor:rwx
[...]
< /code>
с < /p>
sudo -u pvmonitor less /etc/SmartHome/coverd.conf
< /code>
Я могу прочитать файл конфигурации без какой -либо проблемы. Команда я получаю ошибку «разрешение отказано». Вот минимальный воспроизводимый пример, который основан на выдержках моего кода Daemons: < /p>
#include 
#include 
#include 
#include 

const char *ptConfigFile = "/etc/SmartHome/coverd.conf";

void printConfig( void )
{
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79702404/permission-denied-error-even-though-programm-should-have-access[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»