5 Commits

Author SHA1 Message Date
6e7800721f feat: restrict access to postgres socket
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-02-24 13:37:10 +01:00
fe30792dbf fix: chown sock directory
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-02-23 00:16:05 +01:00
0483f61904 fix: create sock directory if not existing
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-02-23 00:05:14 +01:00
ac5a23350d fix: add systemctl restart
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-02-22 22:57:20 +01:00
5870da6249 fix: create db users after service start
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-02-22 22:42:53 +01:00
2 changed files with 14 additions and 6 deletions

View File

@@ -18,6 +18,9 @@ hba_file = '/etc/postgres/pg_hba.conf'
# because we want only uni socket connections
listen_addresses = ''
# Forbide access to users not in group postgres
unix_socket_permissions = 0770
#-------------------------------------------------------------------------------
# REPORTING AND LOGGING

View File

@@ -22,19 +22,25 @@ Install the database management system called postgresql with a predefined confi
%make_install
%post
# Create sock directory if not existing
mkdir --parents --mode 755 "%{_rundir}/postgresql"
chown postgres:postgres "%{_rundir}/postgresql"
# Restart services
systemctl daemon-reload
systemctl reenable postgresql.service
systemctl restart postgresql.service
# Create databases and users from DB_USERS variable (separator is ",") if not existing
IFS="," read -ra users <<< "$DB_USERS";
for user in "${users[@]}"; do
if ! runuser --user=postgres -- psql --quiet --tuples-only --command='\du' | grep --invert-match postgres | grep --quiet "$user"; then
usermod --append --groups postgres "$user";
if ! runuser --user=postgres -- psql --quiet --tuples-only --command='\du' | grep --quiet "$user"; then
runuser --user=postgres -- createuser "$user"
runuser --user=postgres -- createdb --owner="$user" "$user"
fi
done
# Restart services
systemctl daemon-reload
systemctl reenable --now postgresql.service
%files
%dir %attr(755, root, root) %{_sysconfdir}/postgres
%attr(644, root, root) %{_sysconfdir}/postgres/postgresql.conf
@@ -45,4 +51,3 @@ systemctl reenable --now postgresql.service
%changelog
%autochangelog