Logiciel Pastèque/API/DB setup
Apparence
DB setup
[modifier | modifier le wikicode] [as postgres]
create user U with password 'Y';
create database X with owner = U template = template0;
grant all privileges on database X to U;
[as pasteque user]
\i res/database/postgresql/schema.sql
Configuration postgresql for dummies
[modifier | modifier le wikicode]edit /etc/postgresql/X.Y/main/pg_hba.conf
local all all peer
becomes
local all postgres peer\\ local all all md5
For crontask of pgdump:
edit /root/.pgpass (root:root 600)
localhost:5432:<user>:<db>:<password>
Escape any : char with \:
Account creation
[modifier | modifier le wikicode]Use this snippet to generate passwords
<html dir="ltr" lang="en-US">
<head>
<meta charset="UTF-8" />
<title>password_hash</title>
<style type="text/css">
pre { border: 1px solid #444; padding: 1ex; }
</style>
</head>
<body>
<h1>Password hash generator</h1>
<form action="user_ini.php" method="POST" onsubmit="javascript:sendpwd();">
<p>Enter password here</p>
<p><input type="password" name="password" placeholder="password to hash" /></p>
<p><input type="submit" value="send" /></p>
</form>
<h2>Your <user>_id.ini file</h2>
<pre><?php
if (array_key_exists('password', $_POST)) {
echo htmlspecialchars("password=" . password_hash($_POST['password'], PASSWORD_DEFAULT));
} else {
echo "Empty, use the form above";
}?></pre>
<h2>Server source code</h2>
<p>This is the php code running this page and filling the <user>_id.ini block.</p>
<pre>if (array_key_exists('password', $_POST)) {
echo htmlspecialchars("password=" . password_hash($_POST['password'], PASSWORD_DEFAULT));
} else {
echo "Empty, use the form above";
}</pre>
<h2>Standalone script</h2>
<p>Call with php-cli, enter the password twice, outputs the hash. Usage:</p>
<pre>php hasher.php > login_id.ini</pre>
<pre><?php
if ($argc < 2) {
system("stty -echo");
$password = substr(fread(STDIN, 80), 0, -1);
$password2 = substr(fread(STDIN, 80), 0, -1);
system("stty echo");
if ($password != $password2) {
file_put_contents("php://stderr", "Password mismatch\n");
die();
}
} else {
$password = $argv[1];
}
echo "password=" . password_hash($password, PASSWORD_DEFAULT);</pre>
<body>
</html>
Put the output into auth/<ident>_id.ini and create an auth/<ident>_db.ini file following this scheme
type = postgresql host = localhost port = 5432 name = "pg_user" user = "pg_db" password = "pg_pwd"
Obviously, you need to change name, user and password parameters. You can either use mysql but it's not recommanded (in this case, obviously you need to change port to 3306)