Magellan Linux

Annotation of /mcore-src/trunk/mcore-tools/src/include/sessionauth.global.class.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2231 - (hide annotations) (download)
Fri Jan 10 23:54:30 2014 UTC (10 years, 4 months ago) by niro
File size: 1767 byte(s)
-renamed sessionauth.global.class -> sessionauth.global.class.in
1 niro 1248 # $Id$
2    
3     provide auth ssl
4    
5     PASSWD="/etc/mcoredpasswd"
6    
7     md5crypt()
8     {
9     local pass="$1"
10     md5sum << EOF | sed 's:\(.*\)\ \ .*-.*:\1:'
11     ${pass}
12     EOF
13     }
14    
15     mcorepasswd()
16     {
17     local user="$1"
18     local pass
19     local validate
20    
21     if [[ -z ${user} ]]
22     then
23     echo "No username given! Aborting."
24     return 1
25     fi
26    
27     # get pass
28     echo -n "Enter Password: "
29     stty -echo
30     read pass
31     stty echo
32     echo
33    
34     echo -n "Retype Password: "
35     stty -echo
36     read validate
37     stty echo
38     echo
39    
40     if [[ ${pass} == ${validate} ]]
41     then
42     # encrypt and save
43     echo "${user}:$(md5crypt ${pass})" > ${PASSWD}
44     echo "Password for user '${user}' changed by $(id -u -n)."
45     else
46     echo "Passwords don't match!"
47     echo "Password for user '${user}' is unchanged."
48     return 1
49     fi
50    
51     }
52    
53     validate_auth()
54     {
55     local user="$1"
56     local pass="$2"
57    
58     local passwduser
59     local passwdpass
60    
61     # return 0 if ${valid_auth=yes} - user alread authenticated
62 niro 1306 valid_session && return 0
63 niro 1248
64     if [[ ! -f ${PASSWD} ]]
65     then
66 niro 1640 eecho "passwd '${PASSWD}' does not exist!"
67 niro 1248 return 1
68     fi
69    
70     passwduser=$(grep "^${user}:" ${PASSWD} | cut -d: -f1)
71     passwdpass=$(grep "^${user}:" ${PASSWD} | cut -d: -f2)
72    
73     if [[ -n ${passwduser} ]]
74     then
75     if [[ $(md5crypt ${pass}) == ${passwdpass} ]]
76     then
77 niro 1640 mecho "password for user '${user}' is valid!"
78 niro 1248 mecho "Successfully logged in. Type 'help' for more information."
79     export valid_session="yes"
80     return 0
81     else
82 niro 1640 mecho "password for user '${user}' is invalid!"
83 niro 1248 export valid_session="no"
84     return 1
85     fi
86     else
87 niro 1640 eecho "User '${user}' unkown."
88 niro 1248 export valid_session="no"
89     return 1
90     fi
91     }
92    
93 niro 1306 valid_session()
94 niro 1248 {
95     if [[ ${valid_session} = yes ]]
96     then
97     return 0
98     else
99     return 1
100     fi
101     }
102    
103     invalid_session()
104     {
105     if [[ ${valid_session} != yes ]]
106     then
107 niro 1640 eecho "not logged in..."
108 niro 1248 # export quit signal
109     export run=quit
110     fi
111     }