|
|
flag=$1 | flag=$1 |
fname=$2 | fname=$2 |
| |
#if [ -w "$fname" ]; then |
#einfo "chpax -$flag ${fname}" |
einfo "/sbin/chpax -$flag $fname" |
if [ -w ${fname} ]; then |
eval "/sbin/chpax -$flag $fname" |
einfo "chpax -$flag ${fname}" |
#eval "/sbin/chpax -v $fname" |
/sbin/chpax -$flag ${fname} |
#[ $? != 0 ] && eerror "error: chpax -$flag ${fname}" |
[ $? != 0 ] && eerror "error: chpax -$flag ${fname}" |
#fi |
fi |
|
} |
|
|
|
fix_exempts() { |
|
#need to do this for foo{,bar,baz} expressions to work. |
|
PAGEEXEC_EXEMPT=`eval echo $PAGEEXEC_EXEMPT` |
|
TRAMPOLINE_EXEMPT=`eval echo $TRAMPOLINE_EXEMPT` |
|
RANDMMAP_EXEMPT=`eval echo $RANDMMAP_EXEMPT` |
|
MPROTECT_EXEMPT=`eval echo $MPROTECT_EXEMPT` |
|
SEGMEXEC_EXEMPT=`eval echo $SEGMEXEC_EXEMPT` |
|
RANDEXEC_EXEMPT=`eval echo $RANDEXEC_EXEMPT` |
} | } |
| |
start() { | start() { |
checkconfig || return 1 | checkconfig || return 1 |
| |
|
fix_exempts |
|
|
for p in $PAGEEXEC_EXEMPT; do chpax_flag p ${p} ;done | for p in $PAGEEXEC_EXEMPT; do chpax_flag p ${p} ;done |
for e in $TRAMPOLINE_EXEMPT; do chpax_flag e ${e} ;done | for e in $TRAMPOLINE_EXEMPT; do chpax_flag e ${e} ;done |
for r in $RANDMMAP_EXEMPT; do chpax_flag r ${r} ;done | for r in $RANDMMAP_EXEMPT; do chpax_flag r ${r} ;done |
|
|
checkconfig || return 1 | checkconfig || return 1 |
| |
[ "$ZERO_FLAG_MASK" = "yes" ] || return 0 | [ "$ZERO_FLAG_MASK" = "yes" ] || return 0 |
|
fix_exempts |
einfo "chpax zero flag masking" | einfo "chpax zero flag masking" |
for p in $PAGEEXEC_EXEMPT; do chpax_flag z ${p} ;done | for p in $PAGEEXEC_EXEMPT; do chpax_flag z ${p} ;done |
for e in $TRAMPOLINE_EXEMPT; do chpax_flag z ${e} ;done | for e in $TRAMPOLINE_EXEMPT; do chpax_flag z ${e} ;done |