2010年5月

先说我是RHEL5。内核为2.6的、

$HOME/.vnc/xstartup
========== Start of xstartup ===========
#!/bin/sh

# Uncomment the following two lines for normal desktop:
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" &
tw &
========== End of xstartup =============

/etc/sysconfig
=========== bottom part of vncservers (top is all comments ==
# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"
VNCSERRVERS="1:toreilly"
VNCSERVERARGS[1]="-geometry 800x600"
=========== end of vncservers ===============================

转自 : http://yuanbin.blog.51cto.com/363003/115761
Samba的主配置文件叫smb.conf,默认在/etc/samba /目录下。smb.conf含有多个段,每个段由段名开始,直到下个段名。每个段名放 在方括号中间。每段的参数的格式是:名称=指。配置文件中一行一个段名和参数,段名和参数名不分大小写。除了[global]段外,所有的段都可以看作是一个共享资源。段名是该共 享资源的名字,段里的参数是该共享资源的属性。Samba安装好后,使用testparm命令可以测试smb.conf配 置是否正确。使用testparm –v命令可以详细的列出smb.conf支持的配置参数。 全局参数:==================Global Settings ===================[global] config file = /usr/local/samba/lib/smb.conf.%m说明:config file可以让你使用另一个配置文件来覆盖缺省的配置文件。如果文件 不存在,则该项无效。这个参数很有用,可以使得samba配置更灵活,可以让一台samba服务器模拟多台不同配置的服务器。比如,你想让PC1(主机 名)这台电脑在访问Samba Server时使用它自己的配置文件,那么先在/etc/samba/host/下为PC1配置一个名为smb.conf.pc1的文件,然后在 smb.conf中加入:config file = /etc/samba/host/smb.conf.%m。这样当PC1请求连接Samba Server时,smb.conf.%m就被替换成smb.conf.pc1。这样,对于PC1来说,它所使用的Samba服务就是由 smb.conf.pc1定义的,而其他机器访问Samba Server则还是应用smb.conf。 workgroup = WORKGROUP说明:设定 Samba Server 所要加入的工作组或者域。 server string = Samba Server Version %v说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。 netbios name = smbserver说明:设置Samba Server的NetBIOS名称。如果不填,则默认会使用该服务器的DNS名称的第一部分。netbios name和workgroup名字不要设置成一样了。 interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24说明:设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。 hosts allow = 127. 192.168.1. 192.168.10.1说明:表示允许连接到Samba Server的客户端,多个参数以空格隔开。可以用一个IP表示,也可以用一个网段表示。hosts deny 与hosts allow 刚好相反。例如:hosts allow=172.17.2.EXCEPT172.17.2.50表示容许来自172.17.2.*.*的主机连接,但排除 172.17.2.50hosts allow=172.17.2.0/255.255.0.0表示容许来自172.17.2.0/255.255.0.0子网中的所有主 机连接hosts allow=M1,M2表示容许来自M1和M2两台计算机连接hosts allow=@xq表示容许来自XQ网域的所有计算机连接 max connections = 0说明:max connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。 deadtime = 0说明:deadtime用来设置断掉一个没有打开任何文件的连接的时间。单 位是分钟,0代表Samba Server不自动切断任何连接。 time server = yes/no说明:time server用来设置让nmdb成为windows客户端的时间服务器。 log file = /var/log/samba/log.%m说明:设置Samba Server日志文件的存储位置以及日志文件名称。在文件名后加个宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。如果pc1、pc2访问过Samba Server,就会在/var/log/samba目录下留下log.pc1和log.pc2两个日志文件。 max log size = 50说明:设置Samba Server日志文件的最大容量,单位为kB,0代表不限制。 security = user说明:设置用户访问Samba Server的验证方式,一共有四种验证方式。1.share用 户访问Samba Server不需要提供用户名和口令, 安全性能较低。2.user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。3.server:依 靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用 Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。4.domain:域 安全级别,使用主域控制器(PDC)来完成认证。 passdb backend = tdbsam说明:passdb backend就是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam。sam应该是security account manager(安全账户管理)的简写。1.smbpasswd:该方式是使用 smb自己的工具smbpasswd来给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问 Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。2.tdbsam该 方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。passdb.tdb用户数据库可 以使用smbpasswd –a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。我们也可以使用pdbedit命 令来建立Samba账户。pdbedit命令的参数很多,我们列出几个主要的。pdbedit –a username:新建Samba账户。pdbedit –x username:删除Samba账户。pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。pdbedit –Lv:列出Samba用户列表的详细信息。pdbedit –c “[D]” –u username:暂停该Samba用户的账号。pdbedit –c “[]” –u username:恢复该Samba用户的账号。3.ldapsam该 方式则是基于LDAP的账户管理方式来验证用户。首先要建立LDAP服务,然后设置“passdb backend = ldapsam:ldap://LDAP Server” encrypt passwords = yes/no说明:是否将认证密码加密。因为现在windows操作系统都是使用加密密 码,所以一般要开启此项。不过配置文件默认已开启。 smb passwd file = /etc/samba/smbpasswd说明:用来定义samba用户的密码文件。smbpasswd文件如果没有 那就要手工新建。 username map = /etc/samba/smbusers说明:用来定义用户名映射,比如可以将root换成 administrator、admin等。不过要事先在smbusers文件中定义好。比如:root = administrator admin,这样就可以用administrator或admin这两个用户来代替root登陆Samba Server,更贴近windows用户的习惯。 guest account = nobody说明:用来设置guest用户名。 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192说明:用来设置服务器和客户端之间会话的Socket选项,可以优化传输速 度。 domain master = yes/no说明:设置Samba服务器是否要成为网域主浏览器,网域主浏览器可以管理 跨子网域的浏览服务。 local master = yes/no说明:local master用来指定Samba Server是否试图成为本地网域主浏览器。如果设为no,则永远不会成为本地网域主浏览器。但是即使设置为yes,也不等于该Samba Server就能成为主浏览器,还需要参加选举。 preferred master = yes/no说明:设置Samba Server一开机就强迫进行主浏览器选举,可以提高Samba Server成为本地网域主浏览器的机会。如果该参数指定为yes时

一、无盘工作站启动原理
无盘工作站之所以能够启动,是由硬件(工作站端)和软件(服务器端)共同配合的结果。软件上,就是服务器上的远程启动相关服务和无盘系统软件;硬件上,则 是工作站网卡上的BootROM芯片。当然,对于不是很老的主板,其BIOS中空闲较多并支持写入,可以将BootROM芯片代码写入主板BIOS中,节 省了一个芯片。

较常用的无盘启动芯片有RPL和PXE两种。这两种较为通用,其它还有一些厂商开发的专用芯片,不是很普及,以下的讨论中均以RPL和PXE为主。

RPL芯片可用于10M和100M的网卡,有针对NT(2000)的,有针对NetWare的。不同的网卡用的也不一样,需要配套。所以做无盘时不是任何 网卡都能做的。10M的NE2000和8029网卡、100M的8139网卡等都支持RPL芯片,并且也都容易找到相应的RPL芯片。

PXE芯片一般用于100M的网卡,以在8139网卡上的应用最为成熟和典型,甚至很容易就可找到用于8139网卡的PXE芯片代码(用于写入主板或空白 BOOT片)。现在较常见的是那种RPL/PXE双启动的BootROM芯片,价格在6元左右。

1、RPL芯片的启动原理。

(1)发现阶段。当Client启动后,其网卡上的BootROM会向Server广播一个引导请求帧,即FIND帧,该帧包含有Client的网卡号 (MAC地址),网络上所有Server都会发现这个FIND帧。

(2)提供阶段。Server远程启动服务收到Client广播的FIND帧,根据帧中所带的ID号,检查远程启动数据库中是否有该卡号的配置记录,如果 不存在,则引导过程不能继续;如果存在,远程启动服务发送一个FOUND帧,这个帧中包含了服务器的岗卡ID(即Server的MAC地址),然后就调用 BOOTP(Boot Protocol)或者DHCP(Dynamic Host Configuration Protocol)。

(3)选择阶段。Client收到第一个响应后(因为可能网络中不止一个服务器在运行远程启动服务,Client只对收到的第一个FOUND帧回应,包 括:分配给Client的机器名称、IP地址、Server的IP地址、BOOT所需的映像文件等),则发送一个 SEND.FILE.REQUEST Frame给第一个回应的远程启动服务器,请求传送启动所需的文件。

(4)确认阶段。当远程启动服务器收到SEND.FILE.REQUEST Frame的请求后,根据其远程启动数据库的Client记录查找对应的 BOOT BLOCK,将Client启动所需的文件传送给Client,即给工作站一个FILE.DAT.RESPONSE帧,这个帧 包含了 Client启动所需的BOOT BLOCK。

(5)启动阶段。Client接收到完整的启动文件后,开始执行文件中的程序,将执行点转向启动块的入口,启动Client,同时使用另外一个 INTERNET协议:TFTP(Trivial Transfer Protocol)。然后引导不同的OS。

2、PXE芯片的启动原理。

PXE是RPL的升级品,它是Preboot Execution Environment的缩写。它们的不同之处为:一个是静态路由,一个动态路由。不难理解:RPL是根据网卡上的ID号加上其它的记录组成的Frame 向server发出请求,而server那里早已经有了这个ID数据,匹配成功则进行远程启动;PXE是则是根据服务器端收到的工作站MAC地址(就是网 卡号),使用DHCP服务给这个MAC地址指定一个IP地址,每次重启动可能同一台工作站有与上次启动有不同的IP,动态分配地址。下面以工作站引导过程 说明PXE的启动原理:
(1)用户端电脑开机后, PXE Boot ROM 获得控制权之前先做自我测试,然后以广播形式发出一个请求FIND帧。
(2)如果服务器收到个人电脑所送出的要求, 就会送回 DHCP 回应, 内容包括用户端的 IP 地址, 预设通讯通道, 及开机映像文件。 否则, 服务器会忽略这个要求。
(3)工作站收到服务器发回的响应后则会回应一个FRAME,以请求传送启动所需文件。
(4)之后,将有更多的讯息在用户端与服务器之间作应答, 用以决定启动参数。 BootPROM 由 TFTP 通讯协议从服务器下载开机映像档, 这个映像档就是软盘的映象文件。
(5)工作站使用TFTP 协议接收启动文件后,将控制权转交启动块,引导操作系统,完成远程启动。

3、PXE与RPL无盘启动方案的比较
(1)虽然它们都是无盘启动,但是,RPL,毫无疑问,适合做无盘win95或假WIN98,不易做成内核为win98的无盘站。RPL唯一的好处是:比 较成熟,关于它的文章漫天皆是。
(2)就构架整个网络来说,PXE要简单得多。这集中反映在对每台客户机的配置上:RPL要求每一台客户机都要执行安装过程,而PXE配置时,只需要每一 台客户机的MAC地址,把它写到netnames.db这个文件中就可以了,甚至连这个都可以自动完成。
(3)就性能价格比来讲,PXE是RPL 的替代品,是无盘win95的“掘墓人”,从此,无盘启动技术进入了win98的时代。
(4)就适用范围来讲,有盘windows 98能延伸到什么地方,也就是这个技术也可以延伸到的地方。而win95 由于它内核上的限制,不能较好地与INTERNET接轨,其应用受到了极大的限制。
(5)就可维护性讲,PXE空前绝后!PXE的每个工作站的配置都是从公共的windows目录下读取,删除了,无非是重新启动一次,不用在工作站作任何 的动作,系统将自动复原。
(6)应用软件的安装。当你看中某个新的软件,并且打算把它安装在无盘工作站上时,用PXE安装,比如想在无盘win98中新加一个游戏,或以前没有 office2000,现在要安装office2000,很简单:用你那个上传的本地硬盘安装好后,上传一下,所有工作站都可以用了。而win95的应用 软件的安装就没有这么简单。

现在客户端用的多的是PXE的芯片。
服务端“网众”的算是最为出色的。因为你最大的优势有linux版本的和硬盘直接读入。Linux就不用说了,速度上绝对的优势。从硬盘直接读入的优势就是速度快,同样他也支持img镜像的(慢)。

1.服务端的实验在VMware 虚拟机上完全可以做。。
服务器有两个重要的组成。boot服务和io服务。
boot服务需要加密狗才能使用。windows已被破解。而linux现在还没有人破解。(至少我没有找到)
io服务可以不授权使用。这样。我们可以在windows平台做boot服务,linux做io服务。
安装工作站的时候要注意安装NWLINK ipx/spx/Netbios 协议。网卡属性——>安装——>协议——>NWLINK ipx/spx/Netbios。有时候不安装有可能找不到服务端的虚拟磁盘。
2.客户端来测试,能接受boot服务器的数据。但不能加载io服务器的硬盘镜像。。why?嘿嘿。因为没有PXE芯片。

DHCP的中继。
为何不能跨网段。。
我们都知道,在LAN中动态分配IP需要DHCP。但是DHCP的所有信息都是以广播的形式传送的,所以无法通过路由器,这就决定了一台DHCP服务

器只能对本网段的客户机分配IP地址,如果要用一台DHCP服务器给不同的网段分配IP,需要在此网段设置一台DHCP中继代理。安装了Linux系

统的机器经过设置是可以作为DHCP中继代理的,我们作个实验来看一下设置方法。

实验平台:3台安装了LINUX系统的服务器,一台为DHCP服务器Server,一台为router,做路由功能。一台做dhcprelay中继代理relay,二台用于测

试的PC1和PC2。

实验环境:分配三个网段:         

192.168.1.0/24
192.168.2.0/24

作为route的服务器需要安装二个网卡,分别为:eth0;eth1。

IP分配如下:

eth0:192.168.1.254
eth1:192.168.2.254

DHCP服务器Server1只需一张网卡,为:eth0

eth0:192.168.1.1 网关指向:192.168.1.254

要求用于测试的PC1,PC2,分别挂在二个网段中,最后实验的结果为,二个PC均获得所在网段的ip地址

对DHCP服务器的配置:

#vi /etc/dhcpd.conf

引用:

ddns-update-style interim;

ignore client-updates;

option subnet-mask   255.255.255.0;

option domain-name   “domain.org”;


default-lease-time 259200;

max-lease-time 777600;

option domain-name-servers 202.96.134.133,202.96.128.68;

subnet 192.168.1.0 netmask 255.255.255.0
{
option routers 192.168.10.1;
range dynamic-bootp 192.168.10.1 192.168.10.254;
}

subnet 192.168.2.0 netmask 255.255.255.0    //192.168.2.0/24
{
option routers 192.168.20.1;
range dynamic-bootp 192.168.20.1 192.168.20.254;
}

最后,我们使用下面的命令启动DHCP服务器:#service dhcpd start
有的人说起不来服务,不知道什么原因。没有遇到过、、

DHCP服务器配置成功。



下面我们将配置中LINUX为路由器,
#echo “1”> /proc/sys/net/ipv4/ip_forward
配置linux有转发功能、
默认开机就变为0了。可以修改文件/etc/sysctl.conf。


下面配置dhccrealy

首先要配置文件/etc/sysconfig/dhcrealy

#vi /etc/sysconfig/dhcrealy
在里面输入:

INTERFACES=”eth0″
DHCPSERVERS-”192.168.1.1″ #指向DHCP服务器

下面启动dhcrelay
用pc1,pc2进行测试,查看结果.


备注:

在虚拟做实验时,网卡设定虚拟网络如下:

Server1的网卡eth0指向VMnet1

Server2的网卡eth0指向VMnet1,eth1指向VMnet2

PC1的网卡指向VMnet1

PC2的网卡指向VMnet2

我们知道文件的权限可以用三个八进制数字表示。其实文件的权限应该用四个八进制来表示,不过用 ls -l 命令时,只显示三个罢了。那个没有显示的八进制数字其实是第一个,它用来设定一些特殊权限。这个八进制数字的三个位是:

     SUID SGID sticky-bit

     它们的含义是:
SUID


当设置了

SUID 位的文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。如果所有者是 root 的话,那么执行人就有超级用户的特权了。这时该位将变成一个安全漏洞,因此不要轻易设置该位。
sticky-bit

sticky 位要求操作系统既是在可执行程序退出后,仍要在内存中保留该程序的映象。这样做是为了节省大型程序的启动时间。但是会占用系统资源。因此设置该位,不如把 程序写好。

 


每一个文件有所有者及组编号,set uid ;set gid可以改变用户对文件具有的权限:写和执行.

setuid: 在执行时具有文件所有者的权限.
setgid: 设置目录. 一个目录被标上setgid位,此目录下创建的文件继承该目录的属性.
sticky bit: 该位可以理解为防删除位. 设置sticky bit位后,就算用户对目录具有写权限,但也只能添加文件而不能删除文件。


如何设置:

操作这些标志与操作文件 权限的命令是一样的, 都是 chmod. 有两种方法来操作,
1) chmod u+s temp -- 为temp文件加上setuid标志. (setuid 只对文件有效,U=用户)
chmod g+s tempdir -- 为tempdir目录加上setgid标志 (setgid 只对目录有效,g=组名)
chmod o+t temp -- 为temp文件加上sticky标志 (sticky只对文件有效)

2) 采用八进制方式. 这一组八进制数字三位的意义如下,
abc
a - setuid位, 如果该位为1, 则表示设置setuid
b - setgid位, 如果该位为1, 则表示设置setgid
c - sticky位, 如果该位为1, 则表示设置sticky

rwsrw-r-- 表示有setuid标志 (rwxrw-r--:rwsrw-r--)
rwxrwsrw- 表示有setgid标志 (rwxrwxrw-:rwxrwsrw-)
rwxrw-rwt 表示有sticky标志 (rwxrw-rwx:rwxrw-rwt)

理解文件权限

所谓的文件权限,是指对文件的访问权限,包括对文件的读、写、删除、执行。Linux 是一个多用户操作系统,它允许多个用户同时登录和工作。因此 Linux 将一个文件或目录与一个用户和组联系起来。请看下面的例子:

     drwxr-xr-x 5 root root 1024 Sep 13 03:27 Desktop

     与文件权限相关联的是第一、第三、第四个域。第三个域是文件的所有者,第四个域是文件的所属组,而第一个域则限制了文件的访问权限。在这个例子中,文件的 所有者是 root,所属的组是 root,文件的访问权限是 drwxr-xr-x。对于文件和目录讲,每个文件和目录都有一组权限标志和它们结合在一起,在上例中就是第一个域中的内容。下面来仔细分析这个域中各个 符号的意义:

     该域由 10 个字符组成,可以把它们分为四组,具体含义分别是:

     d rwx r-x r-x

     文件类型 所有者权限标志 组权限标志 其他用户权限标志

     其中:

     文件类型:第一个字符。由于 Linux 系统对与设备、目录、文件都当作是文件来处理,因此该字符表明此文件的类型,字符与对应的意义如下表:

     权限标志:

     对每个文件或目录都有 4 类不同的用户。每类用户各有一组读、写和执行(搜索)文件的访问权限,这 4 类用户是:

     root:系统特权用户类,既 UID = 0 的用户。

     owner:拥有文件的用户。

     group:共享文件的组访问权限的用户类的用户组名称。

     world:不属于上面 3 类的所有其他用户。

     作为 root,他们自动拥有了所有文件和目录的全面的读、写和搜索的权限,所以没有必要明确指定他们的权限。其他三类用户则可以在耽搁文件或者目录的基础上别 授权或撤消权限。因此对另外三类用户,一共 9 个权限位与之对应,分为 3 组,每组 3 个,分别用 r、w、x 来表示,分别对应 owner、group、world。

     权限位对于文件和目录的含义有些许不同。每组 3 个字符对应的含义从左至右的顺序,对于文件来说是:读文件的内容(r)、写数据到文件(w)、做为命令执行该文件(x)。对于目录来说是:读包含在目录中 的文件名称(r)、写信息到目录中去(增加和删除索引点的连接)、搜索目录(能用该目录名称作为路径名去访问它所包含的文件或子目录)。具体来说就是:

         1. 有只读权限的用户不能用 cd 进入该目录;还必须有执行权限才能进入。

         2. 有执行权限的用户只有在知道文件名并拥有该文件的读权限的情况下才可以访问目录下的文件。

         3. 必须有读和执行权限才可以使用 ls 列出目录清单,或使用 cd 进入目录。

         4. 如用户有目录的写权限,则可以创建、删除或修改目录下的任何文件或子目录,既是该文件或子目录属于其他用户。

修改文件权限

     首先讲修改文件的所有权,使用 chown 和 chgrp 命令:

     chown new_user file or directory:修改文件或目录的所有者。

     chgrp new_group file or directory:修改文件或目录的所属组。

     这里需要注意的是:普通用户不能将文件或目录的所有权交与他人,只有 root 有这一权限。但是普通用户有权改变文件或目录的所属组。


由于每类用户的权限都是由 rwx 三位组成,因此可以用三个八进制数字表示文件的访问权。一个八进制数字可以用三个二进制数字表示,那么与其对应,权值为 4 的位对应 r,权值为 2 的位对应 w,权值为 1 的位对应 x。对于一类用户,将这三位与其对应的权值相乘求和,就可以得出对该类用户的访问权限。

     改变文件访问权限的命令是 chmod,格式是:

     chmod permission file_name

     比如 chmod 764 a.txt,它表示对于文件的所有者,具有对该文件读、写、执行的权限。对于文件所属组的用户,拥有读、写的权限。对于其他用户,只有读权限。

     这里需要注意的是:文件的创建者是唯一可以修改该文件访问权限的普通用户,另外一个可以修改文件访问权限的用户是 root。

     还有一种表示方法,就是用字符串来设定文件访问权限。其中读用 r 表示,写用 w 表示,执行用 x 表示;所有者用 u 表示,组用户用 g 表示,其他用户用 o 表示,所有用户用 a 表示。那么上面例子就写成西面的模样:

chmod a+r,u+w,u+x,g+w a.txt