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


三、利用vipw命令来代替vi命令 。
通常情况下,用户的帐号信息都是保存在passwd文件中 。注意这个文件名字看起来好像是保存用户密码的 。其实用户的密码并不是保存在这个文件中,而是保存在shadow等类似的文件中 。这主要是为了提高密码的安全性 。不过在passwd文件中也留有一些蛛丝马迹 。如果某个用户的密码为空,则这个用户对应的记录密码字段就为空白 。如果用户设置了密码,则这个密码就会以X等字符来代替 。而真正的密码就以加密的形式保存在其他文件中 。
通常情况下,其他用户可以修改自己的密码 。此时就会用到这个passwd文件 。如果当系统工程师利用vi命令来编辑这个文件,而恰巧这个时候有某个用户正在更改密码,此时用户更改密码的操作就会被拒绝 。系统可能不会提示错误信息,但是最终用户的更改不会被保存到这个文件中 。为了避免这种情况,笔者建系统工程师在修改这些比较特殊文件的时候,则最好能够使用vipw命令 。这个命令会把一个passwd文件拷贝为passwd.tmp 文件,然后会对原有的文件进行锁定 。如果此时有一个用户需要更改密码的话,则就会被提示某个文件正在被使用 。当修改完成之后,系统会根据某些规则来检查这些临时文件 。如果没有问题的话,则就会将这个临时文件的内容同步到原文件中,并解除对原文件的锁定 。
【Unix系统中按需定制用户工作环境】虽然这最终的结果是一样的 。用户与系统工程师不能够同时对Passwd文件进行更改 。但是后者能够给用户提供一个出错的信息,能够让用户明白错在哪里 。而采用vi命令的话,则操作系统会不声不响的拒绝用户的操作,这不是很好 。
四、为类似的用户提供相同的权限 。
由于Unix操作系统是一个真正的多任务多用户操作系统,其允许在同一个时刻内多人共用一台操作系统 。此时系统工程师就遇到了一个挑战 。即不同的用户其使用同一台电脑上的文件、应用程序,那么如何来保障其工作的相对独立性,特别是其自身的文件不会被其他用户意外删除或者修改呢?但是,这个规则也不是决定的 。如果同属于一个部门的用户,在其可以共享彼此的文件,可以修改等等 。遇到这种情况的话,系统工程师该如何处理?
其实这个处理也比较简单,就是可以根据用户性质,为其设置不同的组 。如把几个销售员归属于销售员组 。然后对这个组设置相关的权限,允许这个组内的成员彼此可以修改对方的文件,甚至可以进行删除(这个删除是可行的,但是需要慎重) 。同时设置不同组的成员只可以查看对方的文件,而不能够进行删除或者修改 。当然也可以设置连查看都不行 。设置好之后,只需要把用户加入到特定的组中,则这个用户默认情况下就会具有这个组的相关权限 。而不需要再为用户进行一一的设置 。也就是说,在大部分情况下,系统工程师需要学会在组的级别上为类似的用户设置权限 。而尽量减少为个别用户设置权限 。对组进行权限控制,要比针对用户进行权限设置方便的多,也安全的多 。
总而言之,系统工程师可以通过环境变量、组权限控制等手段,来根据需要定义用户的工作环境 。Windows操作系统中可以实现的用户环境定义,在Unix操作系统中都可以通过以上手段来实现 。而且其控制的范围更加的齐全 。如在Unix操作系统中,可以控制用户所使用的终端类型;可以在不删除应用程序的情况下,把用户可以使用的应用程序限制在最小的范围之内 。但是Windows操作系统则不行,或者说实现起来很困难 。

推荐阅读