После того, как сертификат SSL прочитал, демон должен переключаться на пользователь «Pvmonitor», поскольку разрешения корневых разрешений больше не нужны. Это делается < /p>
Код: Выделить всё
setuid( iUid );
Код: Выделить всё
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]
Мобильная версия