Unix系统中按需定制用户工作环境

在Windows操作系统中,可以通过相关设置来定义用户的默认工作环境 。其实在Unix操作系统中,也可以实现类似的定制 。而且从某种角度来说,其定制的内容比Windows操作系统更加的广泛 。如可以定制用户的默认打印机,定制用户的默认终端类型,定制用户的默认PATH环境变量等等 。笔者这篇文章就告诉各位系统工程师,如何做好这方面的工作 。
一、设置一个合适的终端 。
有时候系统工程师需要手动的为用户或者自己设置一个合适的终端,以便应用程序的结果可以正确的输出到终端上 。要实现这个目的,就需要用到系统中的TERM环境变量 。这个环境变量的作用只有一个,就是指定用户默认情况下采用的终端类型 。也就是说,登陆操作系统后其需要采用的终端 。对于某些应用程序来说,如果TERM环境变量设置错误的话,则应用程序就可能不能够顺利的把结果写输出到终端上 。在设置这个默认环境变量的时候,系统工程师需要知道两个内容,首选需要知道当前可用的终端类型有哪些;其次就是如何给用户指定一个终端 。
如果系统工程师想知道哪些终端是可以用的,则可以查看系统目录/usr/lib/terminfo 。(不同版本的Unix操作系统可能目录有所不同) 。在这个目录中,存储着Unix操作系统所支持的所有有效的终端类型 。如果要为用户指定一个默认的终端设备,则可以在启动配置文件中,利用exprot TERM=终端类型的方式来设置一个默认的终端设备 。在使用这个命令的时候,需要注意英文单词TERM必须为大写 。如果采用小写的话,可能就会发生错误 。
不过有时候系统工程师也希望操作系统能够自动识别终端的类型 。如此的话,用户每次更改终端,我们系统工程师也不用每次都进行重新配置了 。此时系统工程师可以使用ttytype命令 。这个命令可以帮助用户在启动操作系统的时候自动识别终端类型 。我们往往把这个命令使用在用户登录时运行的脚本中 。
二、为用户定义可用的命令集合 。
有时候系统工程师需要为用户定义可用的命令集合或者工具 。如在命令行中输入vi命令就会自动打开一个文本编辑器 。对于Unix操作系统来说,其支持的文本编辑器有很多 。为此系统工程师可能需要用户采用其指定的文本编辑器 。此时除了通过删除软件包的方式来实现,还有其他的方式呢?因为如果把某个程序的软件包删除了,那么这个操作系统中的所有用户都无法使用这个应用程序 。而现在系统工程师只想为某个用户指定特定的文本编辑器,而不影响其他用户的使用 。可见,此时通过删除软件包的方式来实现的话,并不是很好的方式 。其实,此时系统工程师可以通过PATH环境变量来实现这方面的控制 。
当用户在shell中输入vi命令的时候,操作系统会从某些目录中查找这个命令的可执行文件的位置 。而这些目录就是环境变量PATH所决定的 。在Unix操作系统中,环境变量也分为系统级别的环境变量与用户级别的环境变量 。默认情况下,当某个用户登录到系统时其采用的是系统级别的PATH环境变量 。因为此时没有配置用户级别的PATH环境变量 。在PATH环境变量中,定义着几个目录,目录之间会用冒号进行分割 。操作系统就会从几个命令中去查找相关的可执行文件 。如用户安装了某个应用程序,往往需要更改这个PATH环境变量,才可以正常运行这个应用程序 。
所以,我们可以通过在用户级别设置这个PATH环境变量,来限制其可用的应用程序 。如我们可能只允许用户使用邮件、PIS(一种即时聊天工具)等应用程序 。系统工程师可以先建立一个文件夹,然后将这个文件夹下建立这些应用程序可执行文件的连接 。最后把PATH目录指定到这个新建立的文件夹中即可 。由于操作系统执行命令的时候,会从PATH环境变量指定的目录中去查找可执行文件 。如果找不到的话,则就会提示错误信息 。为此通过这种方式可以定义用户可以使用命令的集合 。当然,系统工程师也可以通过为用户设置可执行文件的权限来实现 。不过相对来说,还是这种方法简单、直观一点 。

推荐阅读