文件查找
which whereis locate find
--which
which - shows the full path of (shell) commands.
[root@li ~]# which mount
/bin/mount
[root@li ~]# rpm -qf `which ls` --有别名
--color=tty': unknown option
[root@li ~]# rpm -qf `which --skip-alias ls`
coreutils-5.97-23.el5
[root@li ~]# which ifconfig --查找二进制可执行文件,通过环境变量来查找 也就是$PATH的路径来查找.
/sbin/ifconfig
[a@li ~]$ which ifconifg --普通用户环境变量没有/sbin/这个路径,which找不到
/usr/bin/which: no ifconifg in (/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/a/bin)
--whereis
whereis - locate the binary, source, and manual page files for a command
[root@li ~]# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
[a@li ~]$ whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
--locate
locate - find files by name
[root@li ~]# locate rhel-5.4
/share/soft/iso/rhel-5.4-server-i386-dvd.iso
速度快,通过系统带的一个数据库去查找
[root@li ~]# ls /var/lib/mlocate/
mlocate.db
[root@li ~]# ll /var/lib/mlocate/mlocate.db -h
-rw-r----- 1 root slocate 4.6G Jul 6 11:02 /var/lib/mlocate/mlocate.db
--我这里看到这个文件有近5G,太大了,一般都在几M大小;我这台机器先前写脚本建立过大量文件
[root@li ~]# touch abcd777 --新建一个文件
[root@li ~]# locate abcd777 --locate查找不出来
[root@li ~]# updatedb --手动更新locate数据库,时间比较长,但是系统的时间任务服务会在晚上4点帮你去更新
[root@li ~]# locate abcd777 --更新locate数据库后,再查找就有了/root/abcd777
find
find - search for files in a directory hierarchy
速度慢,要扫你的磁盘,功能强大
find 路径 [选项]
-name --通过名字找
-type --通过文件类型找
-uid --通过uid查找
-gid --通过gid查找
-user --通过username查找
-group --通过groupname查找
-perm --通过权限查找
n --n包含的权限也查找出来
-n --包含n的权限也查找出来
-size --通过大小查找
+n --查出大于n的文件
-n --查出小于n的文件
1,按名称查找
[root@li ~]# find /etc/ -name grub.conf --要全名,与locate不同,不是匹配名字
/etc/grub.conf
[root@li ~]# find /etc/ -name grub
/etc/sysconfig/grub
[root@li ~]# find /etc/ -name grub* --名字不太确定,可以用*通配符来代替
/etc/sysconfig/grub
/etc/grub.conf
find /test/ -iname Aaa --忽略大小写加上-i
/test/aaa
/test/Aaa
/test/AAa
[root@dns test]# find /test/ -name adobe*
[root@dns test]# find /test/ -iname adobe*
/test/AdobeReader_chs-7.0.0-2.i386.rpm
--定义查找的目录层次
[root@li a]# find /test/ -maxdepth 1 -name aaa
/test/aaa
[root@li a]# find /test/ -maxdepth 2 -name aaa
/test/aaa
/test/a/aaa
[root@dns test]# find / -maxdepth 1 -name grub.conf
[root@dns test]# find / -maxdepth 2 -name grub.conf
/etc/grub.conf
/test/grub.conf
[root@dns test]# find / -maxdepth 3 -name grub.conf
/etc/grub.conf
/boot/grub/grub.conf
/test/grub.conf
[root@li test]# find / -mindepth 3 -maxdepth 3 -name grub.conf
/boot/grub/grub.conf
2,按类型查找
find /etc -type l |grep grub.conf
find /etc -type l -name grub.conf --与-name参数一起写
find / -type b
find / -type s
find / -type c
find / -type p
find /test -type d |xargs chmod 777
find /test -type d -exec chmod 755 {} \;
3,按用户名,组名,uid,gid查找
find / -user a
find / -group a
find / -uid 533
find / -gid 533
find / -nouser --查出系统的无头文件,就是指没有属主的文件
find / -nogroup --查出系统的没有属组的文件
没有属主和属组的文件,系统管理一般是要去注意的
[root@dns test]# find /test -user a |xargs tar cf /backup/c.tar
4,按权限查找
find / -perm 777 --查出所有权限为777的文件,一般也是管理员要注意的
find . -perm 111 ---相当于或的功能
find . -perm -777 ---相当于与的功能
[root@li test]# ll
total 0
-rwxrwxrwx 1 root root 0 Mar 16 13:38 1
-rwxr-xr-- 1 root root 0 Mar 16 13:38 2
-r-xr-x-w- 1 root root 0 Mar 16 13:38 3
-r-x------ 1 root root 0 Mar 16 13:38 4
-r--r----x 1 root root 0 Mar 16 13:38 5
--w-r--r-x 1 root root 0 Mar 16 13:38 6
---x-w--wx 1 root root 0 Mar 16 13:38 7
---------- 1 root root 0 Mar 16 13:38 8
[root@li test]# find . -perm 001 --文件的权限与 号后的权限只要有一位重合,就找出来
.
./6
./5
./1
./7
--find . -perm /001 --和 号一样,用来取代 号
[root@li test]# find . -perm -400 --文件的权限要包含-号后的权限(也就是都重合)就找出来
.
./3
./5
./1
./2
./4
练习: 查找/etc/下所有只要user1用户可读可写的文件
find /etc/ -perm -006
5,按大小查找
find / -size 500M --单位有k,m,g等
find / -size 1G
find /etc -size 50k
find /etc -size 50b --b是块,一个块是512个字节
find / -size -1M
--查找大于80M小于100M的文件
find /share -size 80M -size -100M -type f
6,按时间查找
[root@li a]# stat 1
File: `1'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 808h/2056d Inode: 12177882 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2010-04-24 14:44:00.000000000 0800 --atime 阅读过,用cat,tail,head命令等或者vi访问过,但没有修改;执行过也会改变
Modify: 2010-04-24 14:44:00.000000000 0800 --mtime 修改过内容,用vi修改过或者echo一个值重定向
Change: 2010-04-24 14:44:14.000000000 0800 --ctime 改变过内容,属主,属组,权限,创建软链接,硬链接,重命名等
find 按时间查找有 atime,mtime,ctime,amin,mmin,cmin等
-mtime n --代表n天前的24小时内
n --代表n天前(不包含n天本身的24小时)
-n --代表n天内
find . -atime 1 --表示从现在起往前推24小时到推48小时之间的24小时
find . -atime 1 --表示从现在起前推48小时之前的所有时间
find . -atime -1 --表示从现在起往前推24小时到将来的所有时间
1 2 3 4 5 6 7
|-- 2 --|
<------- -2 | | 2 --------------->
将来 now 以前的时间
find / -mtime 0 --0代表目前当天的24小时
find / -mtime 1 --修改时间1天之前
find . -mtime -1 --修改时间在一天之内
练习:
比如现在为7号凌晨0点
查找/etc/下5号那天修改过内容的文件
find /etc -mtime 1
查找/ 下2号以前修改过权限的可能文件
find / -ctime 4
查找 / 下6号到现在被访问过的文件
find / -atime 0
查找10分钟内访问过的文件
find / -amin -10
现在为下午11:30 查找上午10点之后修改过内容的文件
find / -mmin -90
-----------------------------
find后接-exec动作
-exec
find /etc/ -name "*.conf" -exec cp {} /test/a \;
find /etc/ -name grub -exec cat {} \;
-- -exec后面接动作, {}代表前面的结果集 \; 代表结束
==================================
=======================================
quota - display disk usage and limits
磁盘配额
可以以用户来配额,也可以以组来配额
应用的场景:
web服务器 对web空间进行限制
邮件服务器 对用户的邮件空间进行限制
文件服务器 对用户的文件共享空间进行限制
VPS 虚拟私有主机 virtual private server
把一台强劲的服务使用虚拟化技术虚拟成多台小的服务器,然后租用给用户使用
quota的使用限制:
1,它只能对分区有效
2,内核要支持quota --但挂载时要使用特殊参数
3,只能针对普通用户,不能限制root用户
quota的限制方式:
1,block 对磁盘空间大小来做限制,最常用2,inode 对文件个数来做限制,不太好用,但可以和block一起使用
--第一步:
先分一个区出来做测试:
fdisk /dev/sda
Command (m for help): n --新建一个分区
First cylinder (21848-38913, default 21848):
Using default value 21848
Last cylinder or size or sizeM or sizeK (21848-22195, default 22195): 1000M --指定分区为1000M大小
Using default value 22195
Command (m for help): w --保存并退出
[root@li /]# partprobe --将刚分区的信息刷新到磁盘分区表
[root@li /]# mkfs.ext3 /dev/sda13 --格式化刚分的分区
--第二步:
挂载刚分的区,注意挂载参数
[root@li /]# mount -t ext3 -o usrquota,grpquota /dev/sda13 /quota/ --usrquota指支持以用户来配额,grpquota指支持以组来配额
[root@li /]# mount
/dev/sda13 on /quota type ext3 (rw,usrquota,grpquota) --用mount命令验证挂载参数
要想永久生效:
写到/etc/fstab
/dev/sda13 /quota ext3 defaults,usrquota,grpquota 0 0
--第三步:
对要使用quota功能的分区生成quota配置文件
命令为quotacheck
quotacheck - scan a filesystem for disk usage, create, check and repair
quota files
[root@li /]# cd /quota/
[root@li quota]# ls
lost found
quotacheck -cauvg
-c 忽略已经原有的配置文件并再次生成
-a 扫描所有使用挂载参数挂载的分区,并对他们生成配置文件
-u 生成与用户配额有关的配置文件
-g 生成与组配额有关的配置文件
-v 可以看到生成配置过程信息
[root@li quota]# quotacheck -cauvg --对启用quota的分区生成配置文件
quotacheck: Scanning /dev/sda13 [/quota] quotacheck: Cannot stat old user quota file: No such file or directoryquotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory --第一次扫描有报错,没关系
done
quotacheck: Checked 3 directories and 2 files
quotacheck: Old file not found.
quotacheck: Old file not found.
[root@li quota]# ls --再次列表查看,会发现多了两个配置文件
aquota.group aquota.user lost found
--第四步:
开始对用户使用配额
edquota - edit user quotas
[root@li ~]# id a
uid=522(a) gid=522(a) groups=522(a)
[root@li ~]# id b
uid=523(b) gid=523(b) groups=523(b)
[root@li quota]# edquota -u a
Disk quotas for user a (uid 533):
Filesystem blocks soft hard inodes soft hard
/dev/sda13 0 20000 30000 0 0 0
--软限制为20M ,硬限制为30m inode不好控制,不建议使用
[root@li quota]# edquota -u b
Disk quotas for user a (uid 533):
Filesystem blocks soft hard inodes soft hard
/dev/sda13 0 40000 50000 0 0 0
--第五步:
启用quota功能
quotaon /dev/sda13
-第六步:
查看配额的使用情况:
[root@li quota]# repquota -a
*** Report for user quotas on device /dev/sda13
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------root -- 69712 0 0 4 0 0
[root@li quota]# repquota -avugs --查看更详细的磁盘配额
-a 直接搜索有quota标志的分区,报告quota的结果
-v 显示详细信息
-u 显示使用者的quota值
-g 显示组的quota值
-s Try to report used space, number of used inodes and limits in
more appropriate units than the default ones.
*** Report for user quotas on device /dev/sda13
Block grace time: 7days; Inode grace time: 7days --grace time指的是宽限时间,默认是7天
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 69712 0 0 4 0 0
a -- 0 20000 30000 0 0 0
b -- 0 40000 50000 0 0 0
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 3
Used average: 3.000000
*** Report for group quotas on device /dev/sda13
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
Group used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 69712 0 0 4 0 0
Statistics:
Total blocks: 6
Data blocks: 1
Entries: 1
Used average: 1.000000
下面使用a用户测试:
[root@li ~]# su - a
[a@li quota]$ dd if=/dev/zero of=/quota/a1 bs=1M count=19 --创建一个19M的文件a1,没有警告
19 0 records in
19 0 records out19922944 bytes (20 MB) copied, 0.0535929 seconds, 372 MB/s
[a@li quota]$ dd if=/dev/zero of=/quota/a2 bs=1M count=2 --再创建一个2M的文件a2,19+2大于对a用户的软件限制20M,报警告
sda13: warning, user block quota exceeded.
2 0 records in
2 0 records out
2097152 bytes (2.1 MB) copied, 0.00702628 seconds, 298 MB/s
[a@li quota]$ dd if=/dev/zero of=/quota/a3 bs=1M count=8 --创建8M的文件a3,还没超过硬限制
[a@li quota]$ dd if=/dev/zero of=/quota/a4 bs=1M count=2 --创建2M的文件a4,超过硬限制,失败
sda13: write failed, user block limit reached.
dd: writing `/quota/a4': Disk quota exceeded
1 0 records in
0 0 records out
266240 bytes (266 kB) copied, 0.00137422 seconds, 194 MB/s
b用户测试方式也一样
===========================================================
root用户查看测试后的情况:
[root@li quota]# repquota -a
*** Report for user quotas on device /dev/sda13
Block grace time: 10days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 69712 0 0 4 0 0
a - 30000 20000 30000 9days 5 0 0
b - 50000 40000 50000 9days 2 0 0
--上面的实验可以针对grace time来测试一下,
[user2@li ~]$ dd if=/dev/zero of=/quota/user2.01 bs=1M count=29
29 0 records in
29 0 records out
30408704 bytes (30 MB) copied, 0.0526351 seconds, 578 MB/s
[user2@li ~]$ dd if=/dev/zero of=/quota/user2.02 bs=1M count=2sda7: warning, user block quota exceeded.
2 0 records in
2 0 records out
2097152 bytes (2.1 MB) copied, 0.00345779 seconds, 607 MB/s
--上面达到了软限制,在这里我把系统时间改到7天之后
[user2@li ~]$ dd if=/dev/zero of=/quota/user2.03 bs=1M count=2
sda7: write failed, user block quota exceeded too long.
dd: writing `/quota/user2.03': Disk quota exceeded
1 0 records in
0 0 records out
0 bytes (0 B) copied, 0.00022272 seconds, 0.0 kB/s
--系统时间在7天之后(也就是grace time),按理来说硬限制还没有达到,仍然可以写8M到9M的大小,但是现在一个字节都写不进去 --->这就是grace time的作用
[root@li test]# edquota -t --修改grace time的方法
==================================
尝试使用inode来限制
[root@li test]# edquota -u a
Disk quotas for user a (uid 520):
Filesystem blocks soft hard inodes soft hard
/dev/sda8 0 20000 30000 0 2 5
[root@li src]# su - a
[a@li ~]$ cd /quota/
[a@li quota]$ touch a1
[a@li quota]$ touch a2
[a@li quota]$ touch a3
sda8: warning, user file quota exceeded.
[a@li quota]$ touch a4
[a@li quota]$ touch a5
[a@li quota]$ touch a6
sda8: write failed, user file limit reached.
touch: cannot touch `a6': Disk quota exceeded
==================================
-----------------------------------------------------------
组quota配置
要使用组quota配置,挂载时要加上grpquota的参数1,做实验用两个或多个用户加入到一个组,要求gid相同
grupadd quota
useradd -g quota a
useradd -g quota b
usermod -g quota a
2,编辑组quota时
edquota -g quota
3,测试的时候,
对quota组的限制要以组员a和b创建文件占用大小的总和的计算
[root@li quota]# groupadd quota
[root@li quota]# useradd -g quota aa
[root@li quota]# useradd -g quota bb
[root@li quota]# id aa
uid=537(aa) gid=538(quota) groups=538(quota)
[root@li quota]# id bb
uid=538(bb) gid=538(quota) groups=538(quota)
[root@li quota]# repquota -avgs
*** Report for group quotas on device /dev/sda13
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
Group used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 69712 0 0 4 0 0
a -- 30000 0 0 5 0 0
b -- 50000 0 0 2 0 0
quota -- 0 30000 40000 0 0 0
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 4
Used average: 4.000000
[aa@li ~]$ dd if=/dev/zero of=/quota/aa1 bs=1M count=10
10 0 records in
10 0 records out
10485760 bytes (10 MB) copied, 0.0339249 seconds, 309 MB/s
[bb@li ~]$ dd if=/dev/zero of=/quota/bb1 bs=1M count=21
sda13: warning, group block quota exceeded.
21 0 records in
21 0 records out
22020096 bytes (22 MB) copied, 0.0730932 seconds, 301 MB/s
[aa@li ~]$ dd if=/dev/zero of=/quota/aa2 bs=1M count=10sda13: write failed, group block limit reached. --这里报的是group block 限制到达
dd: writing `/quota/aa2': Disk quota exceeded
9 0 records in
8 0 records out
8396800 bytes (8.4 MB) copied, 0.0282151 seconds, 298 MB/s
问:当用户配额和组配额都配置了的时候,有冲突的话,那么是哪个生效?还是都生效?
全部生效,先到达限制的就生效;如果还配置了inode的方式,也一样是都生效的
=============================================================
=============================================================
ACL access control list 访问控制列表
内核级别上去实现的
创建一个文件 test ,要求 user1用户对它有读写执行,user2,user3,user4用户对它有读和执行,其它用户对它只读
-rwxr-xr-- user1 group1 test
--把user2,user3,user4都加入到group1这个组
--上面的针对同一个文件或者目录有三类不同的权限需求,是可以表示出来的;如果有四类或者四类以上的权限需求,就不能表示,那么ACL就可以用上了
acl access control list 访问控制列表
针对同一个文件,对不同的用户实现不同的权限设置,它是内核级别实现权限控制
--要注意的:在rhel5.1,5.2版本是不能直接支持,需要挂载时加上acl参数 -o acl
[root@li test]# dumpe2fs /dev/sda8 |grep user_xattr
dumpe2fs 1.39 (29-May-2006)
Default mount options: user_xattr acl --这里有acl表示是支持acl
mount -t ext3 -o defaults,usrquota,grpquota,acl /dev/sda7 /quota
setfacl 设置acl命令 --对文件和目录都可以
getfacl 查看acl权限状态
setfacl - set file access control lists
EXAMPLES --man帮助文档中的例子
Granting an additional user read access
setfacl -m u:lisa:r file
Revoking write access from all groups and all named
users (using the effective rights mask)
setfacl -m m::rx file
Removing a named group entry from a file’s ACL
setfacl -x g:staff file
setfacl
-m 设置acl
-x 与-m相反
-b 清空文件所有设置的acl
练习:
针对test文件,user1对其rwx,user2对其rw,user3对其rx
setfacl -m u:user1:rwx test
setfacl -m u:user2:rw test
setfacl -m u:user3:rx test
[root@li test]# ll |grep test
-rw-r--r-- 1 root root 0 Apr 18 16:05 test
[root@li test]# getfacl test
# file: test
# owner: root
# group: root
user::rw-
group::r--
other::r--
[root@li test]# setfacl -m u:a:rwx test --设置a用户对test文件的权限为rwx
[root@li test]# ll |grep test --用ll查看时发现有一个 号,权限有点不一样,表明有acl在起作用
-rw-rwxr-- 1 root root 0 Apr 18 16:05 test
[root@li test]# getfacl test
# file: test --指文件名
# owner: root --指文件的属主
# group: root --指文件的属组
user::rw- --指的是属主对此文件的权限
user:a:rwx --指的是a用户对此文件的权限
group::r-- --指的是属组对此文件的权限
mask::rwx --指的是一个有效位,做一个与运算
other::r-- --指的others对此文件的权限
[root@li test]# setfacl -m u:b:r test
[root@li test]# setfacl -m u:c:rx test
[root@li test]# setfacl -m u:d:wx test
[root@li test]# getfacl test# file: test
# owner: root
# group: root
user::rw-
user:a:rwx
user:b:r--
user:c:r-x
user:d:-wx
group::r--
mask::rwx
other::r--
[root@li test]# setfacl -m g:quota:rwx test --设置quota组对test文件的权限为rwx
[root@li test]# getfacl test
# file: test
# owner: root
# group: root
user::rw-
user:a:rwx
user:b:r--
user:c:r-x
user:d:-wx
group::r--
group:quota:rwx
mask::rwx
other::r--
[root@li test]# setfacl -m o:x test --对others对test文件的权限为x
[root@li test]# getfacl test
# file: test
# owner: root
# group: root
user::rw-
user:a:rwx
user:b:r--
user:c:r-x
user:d:-wx
group::r--
group:quota:rwx
mask::rwx
other::--x
--验证时要注意,只有x权限还是不能执行的,读取不了内容,就算有X权限也不可以.rx都要有,才能执行
[root@li test]# setfacl -m mask:r test --对test文件的mask值设为r
[root@li test]# getfacl test
# file: test
# owner: root
# group: root
user::rw-
user:a:rwx #effective:r--
user:b:r--
user:c:r-x #effective:r--
user:d:-wx #effective:---
group::r--
group:quota:rwx #effective:r--
mask::r--
other::--x --mask对other无效
[root@li test]# setfacl -b test
[root@li test]# getfacl test
# file: test
# owner: root
# group: root
user::rw-
group::r--
other::--x
[root@li test]# setfacl -m u:a:rw,g:b:rwx,o:r,mask:rwx test --一次设置多个acl
[root@li test]# getfacl test# file: test
# owner: root
# group: root
user::rw-
user:a:rw-
group::r--
group:b:rwx
mask::rwx
other::r--
取消用户的acl规则:
setfacl -x u:user1 test
取消所有的acl规则:
setfacl -b test
--如果一个用户同属于两个组,使用acl定义的这两个组一个有rw权限,另一个有x权限,那么此用户会对其有rwx权限;
acl可以对目录生效,设置方法一样
练习:
一,创建一个/acl目录,
现在有user1,user2,user3,user4,user5五个用户
要求:
user1能在此目录下创建文件,能CD进去,别的都不能
user2能列出目录内容,能CD进去,别的都不能
user3,user4同属于group1,group1组的用户对此目录有任意权限
user5用户只能CD进去
先使用acl参数来挂载一个分区到/acl目录让它支持quota
groupadd group1
useradd user1
useradd user2
useradd -G group1 user3
useradd -G group1 user4
useradd user5
setfacl -m u:user1:wx /acl
setfacl -m u:user2:rx /acl
setfacl -m g:group1:rwx /acl
setfacl -m u:user5:x /acl
============================================================
vnc
Summary : A remote display system.
Description :
Virtual Network Computing (VNC) is a remote display system which
allows you to view a computing 'desktop' environment not only on the
machine where it is running, but from anywhere on the Internet and
from a wide variety of machine architectures. This package contains a
client which will allow you to connect to other desktops running a VNC
server.
VNC (虚拟网络计算)virtual network computingAT&T实验室最早开发的
属于一种远程控制软件
主要分vncserver vncviewer
[root@li a]# yum list |grep vnc
This system is not registered with RHN.
RHN support will be disabled.
vnc.i386 4.1.2-14.el5_3.1 installed --客户端
vnc-server.i386 4.1.2-14.el5_3.1 installed --服务端
客户端先装上vnc.i386这个包
yum install vnc 装完后就会有vncviewer这个命令
[root@li ~]# vncserver
You will require a password to access your desktops.
Password:
Verify:
New 'li.cluster.com:1 (root)' desktop is li.cluster.com:1
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/li.cluster.com:1.log
[root@li ~]# vncviewer 10.1.1.35:1 --注意后面这个 :1
--默认连接的桌面叫做twm,一种最简单的桌面环境
--------------
让客户端实现连接上的不是twm这个简单桌面,而是gnome
/root/.vnc/ --配置目录
vim /root/.vnc/xstartup --要显示gnome-session 就把下面两句打开,再把别的都给注释掉
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
#[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
#[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey
#vncconfig -iconic &
#xterm -geometry 80x24 10 10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
修改完配置文件后,再在服务端使用vncserver开启一个连接,用客户端来连接这个新连接就可以控制server端的gnome桌面了
[root@li ~]# vncserver :99 --一般数字是按照顺序来的,但也可以这样指定,直接开启第99号控制窗口
[root@li ~]# vncpasswd
[root@li a]# ls /root/.vnc/
li.cluster.com:1.log li.cluster.com:2.log li.cluster.com:3.log passwd
li.cluster.com:1.pid li.cluster.com:2.pid li.cluster.com:3.pid xstartup
[root@li a]# vncserver -kill :1 --杀掉1号控制窗口
Killing Xvnc process ID 11889
[root@li a]# ls /root/.vnc/
li.cluster.com:1.log li.cluster.com:2.pid li.cluster.com:3.pid xstartup
li.cluster.com:2.log li.cluster.com:3.log passwd
[root@li a]# netstat -ntl |grep 58
tcp 0 0 0.0.0.0:5802 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5803 0.0.0.0:* LISTEN
vnc的端口是5801开始和5901开始
5800 n 是给浏览器用的 5900+n 是给vncviewer用的
http://10.1.1.35:5802/ --用浏览器访问
但linux下的firefox浏览器是要装一个java插件
实现大家都可以连接上来,并且是只读模式
vncviewer -Viewonly -Shared 10.1.1.35:1 --这种也不太用
服务端可以使用下面的命令来控制
[root@li ~]# vino-preferences
客户端使用:
vncviewer 10.1.1.35:0 连接就可以了