Support files/scripts created. This has to be integrated with server-config and client-pull-installation.

This commit is contained in:
Emiliano Vavassori 2018-11-08 02:21:14 +01:00
parent 103e7b3032
commit 6621560b56
4 changed files with 52 additions and 8 deletions

1
cronjob Normal file
View File

@ -0,0 +1 @@
@reboot root /var/lib/{{ ansible_local.domain.domainfull }}/bin/paperms.sh &>> /var/log/paperms.log

7
logrotate Normal file
View File

@ -0,0 +1,7 @@
/var/log/paperms.log {
rotate 7
daily
compress
missingok
notifempty
}

34
paperms.sh Normal file
View File

@ -0,0 +1,34 @@
#!/bin/bash
# Fixing base variables
basedir=/var/lib/{{ ansible_local.domain.domainfull }}
# Making sure destination folder exists.
/usr/bin/install -d -o root -g users ${basedir}/bin
# Update this script itself
/usr/bin/wget -q http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/paperms/paperms.sh -O ${basedir}/bin/paperms.sh
/bin/chown root:users ${basedir}/bin/paperms.sh
/bin/chmod a+x ${basedir}/bin/paperms.sh
# Updating cronjob
/usr/bin/wget -q http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/paperms/cronjob -O /etc/cron.d/paperms
/bin/chown root:root /etc/cron.d/paperms
/bin/chmod 0644 /etc/cron.d/paperms
# Removing old versions of the cronjob
rm -f /etc/cron.d/pulseaudio-perms
# Updating logrotate
/usr/bin/wget -q http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/paperms/logrotate -O /etc/logrotate.d/paperms
/bin/chown root:root /etc/logrotate.d/paperms
/bin/chmod 0644 /etc/logrotate.d/paperms
# Updating updategrp.py
/usr/bin/wget -q http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/paperms/updategrp.py -O ${basedir}/bin/updategrp.py
/bin/chown root:users ${basedir}/bin/updategrp.py
/bin/chmod a+x ${basedir}/bin/updategrp.py
# Main part: run updategrp.py
/usr/bin/python2 ${basedir}/bin/updategrp.py "domain users" "pulse"
/usr/bin/python2 ${basedir}/bin/updategrp.py "domain users" "pulse-access"

View File

@ -1,5 +1,6 @@
#!/usr/bin/env python
#!/usr/bin/env python2
from __future__ import print_function
import grp
import re
from subprocess import check_output
@ -30,12 +31,12 @@ class UpdateGrp:
# If to_add is not empty, add each element to group
if len(self.to_add) > 0:
for user in self.to_add:
print(check_output(["gpasswd", "-a", user, self.rightname]))
print(check_output(["gpasswd", "-a", user, self.rightname]), end='')
# If to_remove is not empty, remove each element to group
if len(self.to_remove) > 0:
for user in self.to_remove:
print(check_output(["gpasswd", "-d", user, self.rightname]))
print(check_output(["gpasswd", "-d", user, self.rightname]), end='')
def update_lhs(self):
"""Updates the LHS group members to be equal to the RHS group members."""
@ -46,26 +47,27 @@ class UpdateGrp:
# If to_remove is not empty, add each element to group
if len(self.to_remove) > 0:
for user in self.to_remove:
print(check_output(["gpasswd", "-a", user, self.leftname]))
print(check_output(["gpasswd", "-a", user, self.leftname]), end='')
# If to_add is not empty, remove each element to group
if len(self.to_add) > 0:
for user in self.to_add:
print(check_output(["gpasswd", "-d", user, self.leftname]))
print(check_output(["gpasswd", "-d", user, self.leftname]), end='')
def modprint(self):
"""Debug function to print only modifications."""
print("To add:")
print("To add: ", end='')
print(self.to_add)
print("To remove:")
print("To remove: ", end='')
print(self.to_remove)
# When run interactively
if __name__ == '__main__':
# If the first argument is '--help' or '-h', or number of arguments less than 1 and more than 2, print help.
if len(argv) < 2 or len(argv) > 3 or argv[1] == '--help' or argv[1] == '-h':
print("Usage: %s <group1> <group2>" % argv[0])
print("Usage: %s <LHSgroup> <RHSgroup>" % argv[0])
print("Aligns RHS group members as LHS.")
else:
updgrp = UpdateGrp(argv[1], argv[2])