summaryrefslogtreecommitdiffstats
path: root/src/os-plugins/plugins/eduroam/XX_eduroam.sh
blob: d977a79186a120bf45271dd3c36d3f79f759aed7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Copyright (c) 2007..2008 - RZ Uni Freiburg
# Copyright (c) 2008 - 2009 OpenSLX GmbH
#
# This program/file is free software distributed under the GPL version 2.
# See http://openslx.org/COPYING
#
# If you have any feedback please consult http://openslx.org/feedback and
# send your feedback to feedback@openslx.org
#
# General information about OpenSLX can be found at http://openslx.org
#
# stage3 part of 'eduroam' plugin
#
# script is included from init via the "." load function - thus it has all
# variables and functions available

if [ -e /initramfs/plugin-conf/eduroam.conf ]; then
  . /initramfs/plugin-conf/eduroam.conf
  if [ $eduroam_active -ne 0 ]; then
    [ $DEBUGLEVEL -gt 0 ] && echo "executing the 'eduroam' plugin...";

    # copy files
    cd /mnt/opt/openslx/plugin-repo/eduroam/files
    # better with tar, doesn't work however...
    #tar c * | tar x -C /mnt
    for f in $(find . -type f); do cp $f /mnt/$f; done

    # delete old config, just to make sure there are no conflicts
    pam_radius_conf=/mnt/etc/pam_radius_auth.conf
    [ -f $pam_radius_conf ] && rm $pam_radius_conf

    # hack to get the actual literal string from the config file...
    secret=$(cat /initramfs/plugin-conf/eduroam.conf | grep secret | \
             sed 's/eduroam_server_secret="//g' | sed 's/\(.*\)./\1/')

    # write eduroam server config
    echo -n "$eduroam_server_ip $secret 3" > $pam_radius_conf

    # activate eduroam in kdm
    # TODO: for other desktop managers
    pam_kdm=/mnt/etc/pam.d/kdm
    [ -f $pam_kdm ] && sed 's/@include common-auth/@include radius-auth/g' -i $pam_kdm
    
    [ $DEBUGLEVEL -gt 0 ] && echo "done with the 'eduroam' plugin...";
  fi
fi