limberg, у меня есть решение, но немного некрасивое. Пусть меня поправят мои более опытные коллеги.
НЕ запрещает пользователю настраивать все до чего руки дотянутся, но сбрасывает все изменения после перезагрузки.
Предполагается, что на компьютере работает n-ое количество пользователей
1. Дописать в файл (cat >> /etc/rc.d/rc.local) следующее:
Код: Выделить всё
#/bin/sh
# вписать нужные логины
USERS="user_1 user_2 user_3 user_n"
for user in $USERS; do
if [ ! -d /tmp/$user/ ]; then
mkdir -p /tmp/$user/
else
rm -rf /tmp/$user/*
fi
mount -t aufs none -o br:/tmp/$user/:/home/$user/ /home/$user/
chown $user /tmp/$user/
chmod 700 /tmp/$user/
done
2. Сделать его исполняемым (chmod +x /etc/rc.d/rc.local)
теперь, при загрузке системы будут создаваться директории вида /tmp/%username% и все изменения в домашней папке пользователя будут храниться там до следующей перезагрузки
(/tmp/ очищается автоматически при загрузке)
Если нужно, чтобы пользователь все-таки мог что-то сохранять на постоянной основе,
создается отдельная директория ... (mkdir /where/you/want)
... и даются права на запись в нее всем, с проверкой "авторства" файла (chmod 1777 /where/you/want)
И все, пользователь сможет создавать/удалять в этой директории только файлы, созданные им самим.
По ограничению запуска:
Самое простое - убрать из системы все лишнее.
Более сложный вариант - настройка системы групп пользователей и управление файловыми атрибутами на нужных программах.
Например:
-rwxr-xr-- 1 root devel 2209024 Oct 26 01:15 /usr/bin/gambas2.gambas
эту программу смогут запускать только пользователи, входящие в группу 'devel' И пользователь root.