2 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
2 changed files with 7 additions and 3 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

@@ -23,7 +23,8 @@ Install the database management system called postgresql with a predefined confi
%post %post
# Create sock directory if not existing # Create sock directory if not existing
mkdir --parents "%{_rundir}/postgresql" mkdir --parents --mode 755 "%{_rundir}/postgresql"
chown postgres:postgres "%{_rundir}/postgresql"
# Restart services # Restart services
systemctl daemon-reload systemctl daemon-reload
@@ -33,7 +34,8 @@ 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
@@ -49,4 +51,3 @@ done
%changelog %changelog
%autochangelog %autochangelog