Ограничение выбора оконного менеджера аккаунта
В Red Hat Linux, как конкретная учетная запись может быть ограничена входом в систему с определенным оконным менеджером? Например, разрешен только fvwm2, а KDE и GNOME - нет. Или можно запретить оконным менеджерам выйти?
3 ответа
Единственный способ сделать это - использовать группы. Вы должны настроить группы, которые соответствуют каждому оконному менеджеру, и добавить учетную запись в группы оконного менеджера (или менеджеров) по вашему выбору. Измените владельца группы каждого оконного менеджера на соответствующую группу. Удалите разрешения для "другого" для выполнения различных оконных менеджеров. Теперь, чтобы запустить оконный менеджер, вам нужно иметь разрешение на его выполнение. Поскольку у вас есть только разрешение на запуск оконных менеджеров, которые соответствуют членству в вашей группе, вы можете сделать так, чтобы определенные пользователи могли выполнять только определенные оконные менеджеры.
Это на самом деле кажется очень сложным в поддержании и не особенно масштабируемым, и я бы не рекомендовал это. Вы также можете настроить учетную запись с псевдонимом для "правильного" оконного менеджера и попросить своих пользователей вместо этого вызывать оконный менеджер через псевдоним. Это не остановит определенного пользователя, но может выполнить большую часть того, что вы хотите, без сложностей с обслуживанием групп.
Возможно, вы действительно хотите ограничить (виртуальную) память или другие ресурсы, которые они могут использовать. Если это так, увидеть 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, тогда может работать только оконный менеджер по умолчанию.