Un utilisateur
root est un super utilisateur ou un super administrateur. Il possède tous les privilèges sur la machine. Il a le droit de modifier ou de supprimer n'importe quel fichier. Cela peut être dangereux pour la sécurité du système. Pour éviter cette situation, il faut empêcher de démarrer l'application en mode root ou sudo.
// main.cpp (Programme principal)...
#include "cRoot.h"
#include <iostream>
int main(int argc, char **argv)
{
cRoot oRoot;
if (oRoot.isRoot())
{
std::cerr << "ATTENTION :\n"
<< "tentative d'exécution de l'application avec les permissions root !\n"
<< "Ceci n'est pas autorisé car cela peut modifier les permissions du \n"
<< "répertoire personnel et exposer votre système à des vulnérabilités.\n";
return EXIT_FAILURE;
}
std::cout << "Démarrage de l'application." << std::endl;
return EXIT_SUCCESS;
}
...
// cRoot.h (Vérification de l'utilisateur root)...
#pragma once
class cRoot
{
public:
cRoot();
~cRoot();
bool isRoot() const;
};
...
// cRoot.cpp (Vérification de l'utilisateur root)...
#include "cRoot.h"
#include <unistd.h>
#include <sys/types.h>
cRoot::cRoot()
{
}
cRoot::~cRoot()
{
}
bool cRoot::isRoot() const
{
return (geteuid() == 0);
}
...
// Terminal (Exécuter le projet en mode normal)...
rdvcpp.exe
...
// Terminal (Exécuter le projet en mode root)...
sudo rdvcpp.exe
...