author | Padraig O'Briain <padraig.obriain@sun.com> |
Thu, 25 Feb 2010 13:45:12 +0000 | |
changeset 1791 | b2a37ff09e8c |
parent 1763 | e0499ce4d17d |
permissions | -rw-r--r-- |
1750
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/python2.6 |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
2 |
# |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
3 |
# CDDL HEADER START |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
4 |
# |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
5 |
# The contents of this file are subject to the terms of the |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
6 |
# Common Development and Distribution License (the "License"). |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
7 |
# You may not use this file except in compliance with the License. |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
8 |
# |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
9 |
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
10 |
# or http://www.opensolaris.org/os/licensing. |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
11 |
# See the License for the specific language governing permissions |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
12 |
# and limitations under the License. |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
13 |
# |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
14 |
# When distributing Covered Code, include this CDDL HEADER in each |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
15 |
# file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
16 |
# If applicable, add the following below this CDDL HEADER, with the |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
17 |
# fields enclosed by brackets "[]" replaced with your own identifying |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
18 |
# information: Portions Copyright [yyyy] [name of copyright owner] |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
19 |
# |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
20 |
# CDDL HEADER END |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
21 |
# |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
22 |
# Copyright 2010 Sun Microsystems, Inc. All rights reserved. |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
23 |
# Use is subject to license terms. |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
24 |
# |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
25 |
|
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
26 |
import sys |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
27 |
import pwd |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
28 |
import os |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
29 |
try: |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
30 |
import gobject |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
31 |
import gnome |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
32 |
except ImportError: |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
33 |
sys.exit(1) |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
34 |
|
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
35 |
if __name__ == '__main__': |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
36 |
if len(sys.argv) != 3: |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
37 |
sys.exit(1) |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
38 |
name = sys.argv[1] |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
39 |
link = sys.argv[2] |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
40 |
try: |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
41 |
pw = pwd.getpwnam(name) |
1763
e0499ce4d17d
14594 Typo in openlink.py
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1750
diff
changeset
|
42 |
if pw: |
1750
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
43 |
uid = pw.pw_uid |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
44 |
pw_dir = pw.pw_dir |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
45 |
os.putenv('HOME', pw_dir) |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
46 |
os.setreuid(uid, uid) |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
47 |
os.setuid(uid) |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
48 |
try: |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
49 |
gnome.url_show(link) |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
50 |
except gobject.GError: |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
51 |
sys.exit(1) |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
52 |
sys.exit(0) |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
53 |
else: |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
54 |
sys.exit(1) |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
55 |
except OSError: |
1e1d2661ec8b
14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
56 |
sys.exit(1) |