在Red Hat Linux上,一个特定的帐户如何被限制为使用特定的窗口pipe理器login? 例如,只允许fvwm2,但是KDE和GNOME不允许。 或者不允许的窗口pipe理员被迫退出?
我能想到的唯一方法就是使用组。 您可以设置对应于每个窗口pipe理器的组,并将帐户添加到所选窗口pipe理器(或多个pipe理器)的组中。 将每个窗口pipe理器的组所有者更改为相应的组。 删除“其他”权限来执行不同的窗口pipe理器。 现在,为了启动一个窗口pipe理器,您需要获得执行权限。 由于您只有权限执行与您的组成员资格相对应的窗口pipe理器,因此您可以让特定用户只能执行某些窗口pipe理器。
这实际上似乎很难维护,而不是特别的可扩展性,我不会推荐它。 您也可以使用“正确的”窗口pipe理器的别名来configuration帐户,并要求用户通过别名调用窗口pipe理器。 它不会阻止一个坚定的用户,但可以完成你想要的大部分任务,而不需要维护这个组。
也许你真正想要的是限制他们可以使用的(虚拟)内存或其他资源。 如果是这样,请参阅ulimit命令。
我的同事发现了以下解决scheme:
.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 $$
如果select了默认以外的其他选项,则终止会话。 只要用户不能更改shell或修改.bashrc,那么只有“默认”窗口pipe理器可以运行。