Nous sommes sur le Raspberry Pi via ssh (ou dans une console).
Sur le Raspberry Pi, installez postgresql en lançant :
$ sudo apt-get update $ sudo apt-get install postgresql
Acceptez d'installer tous les paquets 3).
Après un certain temps, il s'affiche :
Un utilisateur système postgres a été créé. Il n'a pas de mot de passe : c'est un utilisateur bloqué et le mieux est qu'il le reste.
utilisateur postgres Au départ, toutes les opérations d'administration se font donc avec l'utilisateur postgres qui seul peut se connecter.
Pour vous connecter en tant qu'utilisateur postgres, utilisez la commande :
$ sudo -i -u postgres
L'invite de commande mentionne que vous êtes actif en tant que postgres :
A la fin de cette session d'administration dans PostgreSQL, il suffira de taper
$ exit
pour reprendre la main en tant qu'utilisateur du système.
On peut aussi lancer une commande (ici psql) en tant que postgres :
$ sudo -u postgres psql
Dès que cette commande se termine, on se retrouve avec l'utilisateur habituel.
Le serveur PostgreSQL est en place.
Nous allons créer l'utilisateur qui nous permettra de gérer postgresql.
Pour cela, lancez l'outil d'administration de PostgreSQL en tant qu'utilisateur postgres :
$ sudo -u postgres psql
Vous êtes dans une interface en ligne de commande, en tant que root (# en bout de ligne).
Pour créer un environnement plus sûr, créez un rôle pour l'administration, avec toutes les autorisations sauf l'héritage des droits :
$ CREATE ROLE <admin> LOGIN ENCRYPTED PASSWORD '<mot_de_passe>' SUPERUSER NOINHERIT CREATEDB CREATEROLE;
N'oubliez pas le point-virgule en fin de ligne !
Quittez l'environnement psql :
$ \q
Vérifiez en essayant de vous connecter avec l'utilisateur que vous venez de créer :
$ sudo -i -u postgres
L'interface web PhpPgAdmin pour PostgreSQL simplifie la mise en place et l'administration.
Installez le paquet :
$ sudo apt install phppgadmin
Éditez avec les droits d'administration le fichier /etc/lighttpd/lighttpd.conf pour ajouter la ligne suivante à la fin du fichier :
... alias.url += ( "/phppgadmin" => "/usr/share/phppgadmin/")
Ainsi, l'adresse http://monsite.tld/phppgadmin pointe sur le bon répertoire interne.
Dans le fichier /etc/lighttpd/lighttpd.conf, assurez-vous que le module mod_alias est activé (dé-commenté)
et activez les modules mod_fastcgi et mod_cgi :
$ sudo lighty-enable-mod fastcgi cgi
Redémarrez le serveur :
$ sudo service lighttpd restart
Allez à la page de phpPgAdmin : http://monsite.tld/phppgadmin
Cliquez sur PostgreSQL sur le côté gauche.
Dans la fenêtre de connexion, entrez le nom et le mot de passe de l'utilisateur créé plus haut pour gérer postgresql. Cela devrait vous connecter
Pour ajouter un rôle (utilisateur)
Cliquez sur rôles dans la zone du milieu en haut de la page
Cliquez sur Créer Rôle
Créer nom d'utilisateur / mot de passe et donner toutes les autorisations autres que privilèges Inherits.
Ignorer les autres options dans les cases à cocher
Cliquez sur Créer
Installez le paquet :
$ sudo apt-get install phppgadmin
Ajouter la directive :
# Mes alias Alias /phppgadmin /usr/share/phppgadmin/
Nous allons maintenant configurer un utilisateur pour l'interface Web.
Pour cela, il faut d'abord retirer les sécurités. éditez avec les droits d'administration le fichier /usr/share/phppgadmin/conf/config.inc.php pour mettre la ligne suivante à false :
$conf['extra_login_security'] = false;
Il faut encore modifier l'utilisateur postgres pour lui donner un mot de passe.
Lancer :
$ sudo -u postgres psql
Au prompt, exécuter :
$ ALTER USER postgres password 'Mot_DE_PASSE';
et quitter par
$ \q
Pour déplacer le répertoire des données, éditer la ligne suivante du fichier postgresql.conf :
data_directory = ...
Le répertoire des données doit appartenir à “postgres:postgres” :
$ sudo chown postgres:postgres -R repertoiredata
Le port par défaut se configure dans le fichier postgresql.conf.
Maintenant, allez à la page de phpPgAdmin : http://framboise.local/phppgadmin/.
Nous allons maintenant créer un nouveau compte d'utilisateur qui peut accéder à l'interface de phpPgAdmin en toute sécurité.
En effet pour l'instant, n'importe qui peut se connecter en utilisant le mot de passe avec l'utilisateur postgres.
Pour créer un environnement plus sûr
Maintenant que vous êtes déconnecté, Essayez de vous connecter avec l'utilisateur que vous venez de créer : Vous devez y arriver.
Il est temps de re-sécuriser notre serveur. éditez avec les droits d'administration le fichier /usr/share/phppgadmin/conf/config.inc.php pour mettre la ligne suivante à true :
$conf['extra_login_security'] = true;
C'est tout! Vous avez maintenant une page de phpgaadmin sécurisé et une interface agréable pour configurer votre serveur PostgreSQL.
Voir :
Petit guide de survie pour le client psql