6 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
5bf84b3719 fix: add drop-in directory in spec file
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-02-22 22:35:06 +01:00
2 changed files with 18 additions and 8 deletions

View File

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

View File

@@ -22,25 +22,32 @@ Install the database management system called postgresql with a predefined confi
%make_install %make_install
%post %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 # Create databases and users from DB_USERS variable (separator is ",") if not existing
IFS="," read -ra users <<<"$DB_USERS"; IFS="," read -ra users <<< "$DB_USERS";
for user in "${users[@]}"; do 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 -- createuser "$user"
runuser --user=postgres -- createdb --owner="$user" "$user" runuser --user=postgres -- createdb --owner="$user" "$user"
fi fi
done done
# Restart services
systemctl daemon-reload
systemctl reenable --now postgresql.service
%files %files
%attr(755, root, root) %{_sysconfdir}/postgres %dir %attr(755, root, root) %{_sysconfdir}/postgres
%attr(644, root, root) %{_sysconfdir}/postgres/postgresql.conf %attr(644, root, root) %{_sysconfdir}/postgres/postgresql.conf
%attr(644, root, root) %{_sysconfdir}/postgres/pg_hba.conf %attr(644, root, root) %{_sysconfdir}/postgres/pg_hba.conf
%dir %attr(755, root, root) %{_unitdir}/postgresql.service.d
%attr(644, root, root) %{_unitdir}/postgresql.service.d/postgres.conf %attr(644, root, root) %{_unitdir}/postgresql.service.d/postgres.conf
%changelog %changelog
%autochangelog %autochangelog