-rw-r--r-- | share/opie-login/post-session | 25 | ||||
-rw-r--r-- | share/opie-login/pre-session | 31 |
2 files changed, 27 insertions, 29 deletions
diff --git a/share/opie-login/post-session b/share/opie-login/post-session index cc0030e..7016743 100644 --- a/share/opie-login/post-session +++ b/share/opie-login/post-session @@ -1,11 +1,24 @@ #!/bin/sh -if [ -e /proc/hal/model ]; then - [ -e /dev/sound/dsp ] && chown root /dev/sound/dsp - [ -e /dev/sound/mixer ] && chown root /dev/sound/mixer - [ -e /dev/touchscreen/0 ] && chown root /dev/touchscreen/0 - [ -e /dev/fb/0 ] && chown root /dev/fb/0 - [ -e /dev/vc/0 ] && chown root /dev/vc/0 +permin () +{ + if [ -e $1 ] + then + chown root $1 + else + echo Warning: $1 does not exist. + return 1 fi +} +if [ -e /proc/hal/model ]; then + devs = /dev/sound/dsp /dev/sound/mixer /dev/touchscreen/0 \ + /dev/fb/0 /dev/vc/0 +else + devs = /dev/dsp /dev/dsp1 /dev/mixer /dev/ts /dev/fb0 \ + /dev/sharp* /dev/collie* +fi +for i in $devs; do + permout( $i ) +done diff --git a/share/opie-login/pre-session b/share/opie-login/pre-session index 6bf9e4c..e147afc 100644 --- a/share/opie-login/pre-session +++ b/share/opie-login/pre-session @@ -1,56 +1,41 @@ #!/bin/sh USER=$1 # NOTE about permissions in OpenZaurus # The devices in question here by default # are accessible to everyone in the group in # question. We wish to ensure that, as a policy # choice, a login to opie makes access to these # devices exclusive by 1) changing device ownership # to the user, and 2) removing group access. # # A better implementation would probably be to store # existing device permissions at load time, and restore # them at exit, rather than making assumptions about # user/group ownership, or permissions. permin () { if [ -e $1 ] then - chown $USER $1 - chmod g-rw $1 - else + echo Warning: $1 does not exist. return 1 fi } -permout () -{ - [ -e $1 ] && chown root $1 - [ -e $1 ] && chmod g+rw $1 -} - if [ -e /proc/hal/model ]; then - # fix for misconfigured devfsd chmod +x /dev/sound /dev/touchscreen /dev/fb /dev/vc - - [ -e /dev/sound/dsp ] && chown $USER /dev/sound/dsp - [ -e /dev/sound/mixer ] && chown $USER /dev/sound/mixer - [ -e /dev/touchscreen/0 ] && chown $USER /dev/touchscreen/0 - [ -e /dev/fb/0 ] && chown $USER /dev/fb/0 - [ -e /dev/vc/0 ] && chown $USER /dev/vc/0 - + devs = /dev/sound/dsp /dev/sound/mixer /dev/touchscreen/0 \ + /dev/fb/0 /dev/vc/0 else + devs = /dev/dsp /dev/dsp1 /dev/mixer /dev/ts /dev/fb0 \ + /dev/sharp* /dev/collie* +fi - for dev in /dev/dsp /dev/dsp1 /dev/mixer \ - /dev/ts /dev/fb0 - do - permin( $dev ) +for i in $devs; do + permin( $i ) done - -fi |