基于Linux平台实现不同权限的VNC用户登录方法

2014-09-25 01:51帅文明
通信电源技术 2014年1期
关键词:多用户桌面命令

张 妍,帅文明

(广东工业大学,广东 广州510006)

在公司局域网内,服务器是共有的财产,经常有多个用户需要登录到linux平台进行操作,但由于每个层级能接触到的内容都不尽相同,所以需要对不同的分组设置不同的权限,让各层级从不同权限用户登入linux平台,这样就需要配置VNC多用户。在此介绍一种简便的设置VNC不同权限多用户的方法。以下操作均在笔者的实验环境下进行,服务器操作系统为Red Hat Enterprise Linux 4,客户机操作系统为Windows XP。

1 VNC概述

VNC(Virt ual Net wor k Co mputing)是虚拟网络计算机的缩写,它是一套由英国剑桥大学AT&T实验室在2002年开发的轻量型的远程控制计算机软件,采用了GPL授权条款,任何人都可免费取得该软件。VNC是基于UNIX和Linux的免费的开源软件,远程控制能力强大,高效实用。软件分为两个部分:vncser ver和vncviewer。使用前,用户先将VNC server安装在被控端的计算机上,然后在主控端运行VNC vier wer来远程控制被控端。VNC支持多种操作系统,如 Windows、Linux、Unix、Mac OS等,可将 VNC ser ver与VNC viewer分别安装在不同的操作系统中进行控制。

2 VNC服务的启动和基本配置

通常情况下,Red Hat Enter prise Linux默认附带VNC,可使用r p m-q vnc-ser ver命令检查已安装了何种版本。如果没有安装的话,可以去网上下载安装。

首先,如果是第一次使用vnc的话,你必须先通过其他方式进入Linux系统,然后创建一个vnc用户,开启vnc服务。可以使用vncserver命令来启动VNC服务,命令的格式为“vncserver:桌面号”,其中桌面号用数字表示,每个用户连接需要占用一个桌面,以此来区别到底是使用哪个用户来登录的,桌面号可以说是唯一的识别码。这里建议第一个创建的用户为r oot,如要启动编号为1的桌面可以执行命令:vncserver:1。第一次运行该命令的时候,系统会提示用户输入访问口令。口令会被加密保存在用户主目录下的.vnc子目录中的pass wd文件里,以后想修改密码的话也很简单,只需要输入vncpasswd就可以进行修改了。同时,系统还会在用户目录下的.vnc子目录中为用户自动建立xstartup配置文件,以后每次启动VNC服务时,都会读取该文件中的配置选项。

如果Linux服务器开启了防火墙功能,还需要设置允许TCP协议相应的端口通过或关闭防火墙功能,如可以使用以下命令允许桌面号为1的连接通过:iptables-I INPUT-p tcp-dport 5901-j ACCEPT。其 中桌面号1对应的端口是5901,2对应的端口是5902,依此类推。

要想更方便地使用VNC远程控制Linux系统,KDE和GNOME图形桌面环境无疑是一大助手。创建好vnc桌面号之后,想直接登录进入图形界面,则要对其用户目录下的.vnc/xstart up文件做一些修改——将第四行和第五行,即unset SESSION_MAN-AGER和exec/etc/X11/xinit/xinitrc前面的#号去掉,如图1所示。

图1 xstartup文档的修改

然后重新启动vncserver桌面号——使用命令vncserver-kill:1杀掉桌面号1,再用vncserver:1重新启动它。这样就成功配置好了一个桌面号为1的root用户了。配置好vnc用户之后,从安装了vnc viewer的机器登录时,只需在其中输入Linux所在主机名和桌面号,就会以桌面号对应的用户登入Linux系统了,如图2。

图2 VNC登陆Linux界面

3 VNC多用户配置

对于VNC多用户配置,笔者总结网上最为普遍的一种方法,就是修改配置文件/etc.sysconfig/vncser vers,首先将最后两排代码#VNCSERVERS="2:myuser na me"

#VNCSERVERARGS[2]="-geometry 800x600-nolisten tcp-nohttpd-localhost"

之间加入要配置的vnc多用户的信息,即:

#VNCSERVERS="2:myuser name"

VNCSERVERS="1:root 2:test1 3:test2"

VNCSERVERARGS[1]="-geometry 800x600"

VNCSERVERARGS[2]="-geometry 800x600"

VNCSERVERARGS[3]="-geometry 800x600"

#VNCSERVERARGS[2]="-geometry 800x600-nolisten tcp-nohttpd-localhost"

然后切换到上述写入的用户中,手动创建.vnc文件夹,设置该用户的vnc远程连接密码,再回到root用户重启vnc服务。

实际上,这样配置出来的VNC多用户登录进入Linux系统后都是r oot权限,显然不符合不同用户拥有不同权限的要求,必须更进一步进行授权,非常麻烦。于是笔者想到一种方法——既然要求登入系统后每个用户权限不同,那么直接用相应权限的用户来创建VNC登录用户无疑更加方便可靠。

配置VNC多用户的过程其实与上述配置r oot用户过程相差不多,只要在配置其他用户之前先切换到该用户,然后进行基础配置即可。这里以test1用户,桌面号11为例,先以su-test1命令切换到test1用户,然后以vncserver:11启动该桌面号服务,再修改.vnc/xstartup文 件,最 后 以 vncserver-kill:11 和vncserver:11重新启动服务即可。

若test1用户要配置多个vnc登录用户,只需要在该用户下多次重复上述过程创建不同桌面号就能满足要求。

4 需要注意的事项

4.1 重启VNC服务注意事项

由于使用vncserver命令创建的桌面号会在服务器重新启动后失效,服务器每次启动之后都需要重新建立桌面号,非常不方便。为了让系统自动管理这些桌面号,可以将它们添加到配置文件/etc/sysconfig/vncser vers中,格式为:VNCSERVERS="桌面号:使用的用户名。

例如:VNCSERVERS="1:r oot"

VNCSERVERS="2:test1"

VNCSERVERS="3:test2"

添加完成后,VNC服务每次启动时都会自动创建这些桌面号。

4.2 异常删除桌面号修复方法

若不小心异常操作删除了桌面号,导致虽然桌面号被删除,但对应的端口号却没有释放,而无法重新启用该桌面号时,我们可以先计算出对应的端口号,如test1的桌面号为11,则对应的端口号则为5911。然后用lsof-i:5911来查看占用该端口号的进程,然后用kill杀掉该进程,即可以恢复到桌面号和端口号都自由的状态,重新使用该桌面号。

[1] 陈 虹.基于Linux平台下的VNC远程控制实现方法[J].萍乡高等专科学校学报,2007,3:25-26.

猜你喜欢
多用户桌面命令
安泰科多用户报告订阅单
只听主人的命令
安泰科多用户报告订阅单
安泰科多用户报告订阅单
基于APP在线控制双挤出头FDM桌面3D打印机的研制
安泰科多用户报告订阅单
桌面云技术在铁路行业中的应用
移防命令下达后
桌面装忙
这是人民的命令