Revision 24230,
1.4 KB
checked in by broder, 15 years ago
(diff) |
Add missing trailing semicolons to the new helper functions in
reactivate
|
-
Property svn:executable set to
*
|
Rev | Line | |
---|
[23155] | 1 | #!/bin/sh |
---|
[24149] | 2 | # |
---|
| 3 | # snapshot-run PROGRAM [ARGS] |
---|
| 4 | # Create an Athena login snapshot, run PROGRAM within it, and clean up |
---|
| 5 | # the snapshot. |
---|
| 6 | # |
---|
| 7 | # This script is run as the user who is logging in, usually as a wrapper |
---|
| 8 | # around their Xsession or shell. You probably want to run reactivate |
---|
| 9 | # immediately afterwards, as root. |
---|
[23155] | 10 | |
---|
[24125] | 11 | set -e |
---|
[24165] | 12 | cd / |
---|
[24125] | 13 | |
---|
| 14 | addgroups="admin lpadmin adm fuse cdrom floppy audio video plugdev scanner dialout" |
---|
| 15 | daemons="$(/usr/sbin/policy-rc.d --daemons)" |
---|
| 16 | |
---|
| 17 | # Setup |
---|
| 18 | |
---|
| 19 | session=$(schroot -c login -b) |
---|
[24230] | 20 | sch() { schroot -r -c "$session" -- "$@"; } # Run in the chroot |
---|
| 21 | schq() { schroot -q -r -c "$session" -- "$@"; } # Run in the chroot quietly |
---|
| 22 | schr() { schroot -r -c -u root "$session" -- "$@"; } # Run in the chroot as root |
---|
[24228] | 23 | |
---|
[24125] | 24 | for group in $addgroups; do |
---|
[24228] | 25 | schr getent group "$group" >/dev/null 2>&1 && schr adduser "$USER" "$group" |
---|
[24125] | 26 | done |
---|
| 27 | |
---|
[24228] | 28 | schr sed -i "/su-error/d" "/etc/pam.d/su.debathena" |
---|
[24125] | 29 | |
---|
[24228] | 30 | schr touch /ClusterLogin |
---|
[24199] | 31 | |
---|
[24125] | 32 | for daemon in $daemons; do |
---|
[24228] | 33 | schr invoke-rc.d "$daemon" start || [ $? = 100 ] |
---|
[24125] | 34 | done |
---|
| 35 | |
---|
[24228] | 36 | schr rm /etc/debian_chroot |
---|
[24125] | 37 | |
---|
| 38 | # Run the session |
---|
| 39 | # |
---|
[24149] | 40 | # We wrap the target command in sudo because it runs initgroups(3) |
---|
[24125] | 41 | # /after/ being chrooted, which puts users back in the groups we |
---|
| 42 | # added them to |
---|
| 43 | |
---|
[24149] | 44 | set +e |
---|
| 45 | |
---|
[24165] | 46 | cd |
---|
[24149] | 47 | schroot -c "$session" -r -p -- sudo -E -u "$USER" -- "$@" |
---|
[24165] | 48 | cd / |
---|
[24149] | 49 | |
---|
[24125] | 50 | # Teardown |
---|
| 51 | |
---|
| 52 | for daemon in $daemons; do |
---|
[24228] | 53 | schr invoke-rc.d "$daemon" stop || [ $? = 100 ] |
---|
[24125] | 54 | done |
---|
| 55 | |
---|
| 56 | schroot -c "$session" -e |
---|
Note: See
TracBrowser
for help on using the repository browser.