>Нужно ограничить возможности этих групп/пользователей.
>т.е. что б например у них был доступ к парочке команд, и
>что б остальные файлы для них были недоступны и желательно что
>бы они не смогли видеть листинг этих файлов.
Можно сделать либо сделать chroot для этих юзеров непосредственно при входе в систему. Делается это так:
в passwd пишется в качестве шелла /bin/chrootsh:
vh-test:x:1003:1002:virtual hosting user test:/var/home/vh-test:/bin/chrootsh
содержимое /bin/chrootsh:
#!/bin/sh
export CHROOT_USER=$USER
if [ "$1" = "-c" ] ; then
i=0
PARAMS=""
for param in $* ; do
if [ $i -gt 0 ] ; then
PARAMS="$PARAMS $param"
fi
let i++
done
sudo /bin/limitedsh -c "$PARAMS"
else
sudo /bin/limitedsh
fi
содержимое /bin/limitedsh:
#!/bin/sh
ulimit -SHc 0
ulimit -SHn 30
ulimit -SHv 10000
ulimit -SHu 30
umask 022
export USER=$CHROOT_USER
unset CHROOT_USER
REAL_HOME=$HOME
export SHELL=/bin/sh
export TMP=/tmp
export HOME=/
if [ "$1" = "-c" ] ; then
i=0
PARAMS=""
for param in $* ; do
if [ $i -gt 0 ] ; then
PARAMS="$PARAMS $param"
fi
let i++
done
/usr/sbin/chroot $REAL_HOME /bin/su - $USER -c "$PARAMS"
else
/usr/sbin/chroot $REAL_HOME /bin/su - $USER
fi
В домашний каталог юзера придется напихать все нужные и доступные пользователю команды и все необходимые для них библиотеки. Это можно сделать либо вручную, либо воспользовавшись специальными программами для формирования chroot'ных каталогов. Такие программы можно найти на www.freshmeat.net.
Достоинство такого подхода - высокая безопасность, т.к. пользователю фзически недоступны ненужные программы. Недостаток - это ограниченность взаимодействия с другими процессами - в частности например отсутствие /proc сделает невозможным работу killall и т.д.
Второй вариант - использовать всякие restricted shells и обойтись без chroot'а, но я с ними не работал, поэтому подробностей не расскажу. Вкратце, там админ настраивает шаблоны разрешенных команд - скажем можно разрешить только sudo /etc/init.d/mysql stop, start и myisamchk, и все - специально для юзера, который будет ремонтировать mysql'ные базы после аварии.