Как в Red Hat Linux можно ограничить конкретную учетную запись для входа в систему с помощью определенного оконного менеджера? Например, разрешен только fvwm2, но не KDE и GNOME. Или можно принудительно закрыть запрещенные оконные менеджеры?
Я могу думать только о том, чтобы сделать это с помощью групп. Вы должны создать группы, соответствующие каждому оконному менеджеру, и добавить учетную запись в группы оконного менеджера (или менеджеров) по выбору. Измените владельца группы каждого оконного менеджера на соответствующую группу. Удалите разрешения для «других» на выполнение различных оконных менеджеров. Теперь, чтобы запустить оконный менеджер, вам потребуется разрешение на его выполнение. Поскольку у вас есть разрешение только на выполнение оконных менеджеров, которые соответствуют членству в вашей группе, вы можете сделать так, чтобы определенные пользователи могли запускать только определенные оконные менеджеры.
На самом деле это кажется очень сложным в обслуживании и не особенно масштабируемым, и я бы не рекомендовал его. С таким же успехом вы можете настроить учетную запись с псевдонимом для «правильного» оконного менеджера и вместо этого попросить своих пользователей вызывать оконный менеджер через псевдоним. Это не остановит решительного пользователя, но может выполнить большую часть того, что вы хотите, без осложнений, связанных с обслуживанием групп.
Возможно, вы действительно хотите ограничить (виртуальную) память или другие ресурсы, которые они могут использовать. Если да, см. ulimit
команда.
Мои коллеги нашли следующее решение:
.dmrc должен быть
[Desktop]
Session=default
.Xclients-default, .xinitrc и .xsessions должны иметь
application-for-user-to-interact-with &
/usr/local/bin/fvwm2 -f $HOME/system.fvwm2rc
gnome-login-script должен быть
pkill -n gnome-session
pkill -n gconfd
kde-login-script должен быть
pkill -n kwrapper
pkill -n gconfd
Измените /etc/X11/gdm/gdm.conf, чтобы он указывал
ShowLastSession=false
DefaultSession=default.desktop
Добавьте в ~ lcsoper / .bash_profile:
if [ "$TERM" != "dumb" -a "$SSH_CLIENT" != "" ]; then
application-for-user-to-interact-with
fi
kill -9 $$
для завершения сеанса, если было выбрано что-то иное, чем значение по умолчанию. Пока пользователь не может изменять оболочки или модифицировать .bashrc, может работать только оконный менеджер "по умолчанию".