diff --git a/cronjob b/cronjob new file mode 100644 index 0000000..40ff17e --- /dev/null +++ b/cronjob @@ -0,0 +1 @@ +@reboot root /var/lib/{{ ansible_local.domain.domainfull }}/bin/paperms.sh &>> /var/log/paperms.log diff --git a/logrotate b/logrotate new file mode 100644 index 0000000..0aae171 --- /dev/null +++ b/logrotate @@ -0,0 +1,7 @@ +/var/log/paperms.log { + rotate 7 + daily + compress + missingok + notifempty +} diff --git a/paperms.sh b/paperms.sh new file mode 100644 index 0000000..c7dfb72 --- /dev/null +++ b/paperms.sh @@ -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" diff --git a/pulseaudiomgr.py b/updategrp.py similarity index 88% rename from pulseaudiomgr.py rename to updategrp.py index f44df8c..4c0492d 100644 --- a/pulseaudiomgr.py +++ b/updategrp.py @@ -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 " % argv[0]) + print("Usage: %s " % argv[0]) + print("Aligns RHS group members as LHS.") else: updgrp = UpdateGrp(argv[1], argv[2])