删除 System Volume Information 里内容

今天我的红伞报d:System Volume Information的木文件是木马。我郁闷不知道什么时候中的,但是杀不了,拒绝访问!默认权限是system,杀软无法访问,更无法删除。
官方介绍的方法。。反正不能系统还原,直接去掉了。。。
使用 FAT32 文件系统的 Microsoft Windows XP Professional 或 Windows XP Home Edition

  1. 单击“开始”,然后单击“我的电脑”。
  2. 在“工具”菜单上,单击“文件夹选 项”。
  3. 在“查看”选项卡上,单击“显示所有文件和文件夹”。
  4. 清除“隐藏受保护的操作系统文件(推荐)”复选框。当系 统提示您确认是否更改时,请单击“是”。
  5. 单击“确定”。
  6. 在根文件夹中双击“System Volume Information”文件夹以将其打开。

在域中使用 NTFS 文件系统的 Windows XP Professional
  1. 单击“开始”,然后单击“我的电脑”。
  2. 在“工具”菜单上,单击“文件夹选 项”。
  3. 在“查看”选项卡上,单击“显示所有文件和文件夹”。
  4. 清除“隐藏受保护的操作系统文件(推荐)”复选框。当系 统提示您确认是否更改时,请单击“是”。
  5. 单击“确定”。
  6. 在根文件夹中右键单击“System Volume Information”文件夹,然后单击“共享和安全”。
  7. 单击“安全”选项卡。
  8. 单击“添加”,然后键入要向其授予 该文件夹访问权限的用户的名称。选择相应的帐户位置(本地帐户或域帐户)。通常,这是您登录时使用的帐户。单击“确定”,然后再次单击“确定”。
  9. 在 根文件夹中双击“System Volume Information”文件夹以将其打开。

在工作组或独立计算机上使用 NTFS 文件系统的 Windows XP Professional
  1. 单击“开始”,然后单击“我的电脑”。
  2. 在“工具”菜单上,单击“文件夹选 项”。
  3. 在“查看”选项卡上,单击“显示所有文件和文件夹”。
  4. 清除“隐藏受保护的操作系统文件(推荐)”复选框。当系 统提示您确认是否更改时,请单击“是”。
  5. 清除“使用简单文件共享(推荐)”复选框。
  6. 单击“确定”。
  7. 在 根文件夹中右键单击“System Volume Information”文件夹,然后单击“属性”。
  8. 单击“安全”选项卡。
  9. 单 击“添加”,然后键入要向其授予该文件夹访问权限的用户的名称。通常,这是您登录时使用的帐户。单击“确定”,然后再次单击“确定”。
  10. 在 根文件夹中双击“System Volume Information”文件夹以将其打开。

    注意:现在,Windows XP Home Edition 的用户可以在正常模式下访问 System Volume Information 文件夹。

在使用 NTFS 文件系统的 Windows XP Home Edition 中使用 CACLS在采用 NTFS 文件系统的 Windows XP Home Edition 中,您还可以使用 Cacls 工具。Cacls 是一个命令行工具,可用于显示或修改文件或文件夹访问控制列表 (ACL)。有关 Cacls 工具的更多信息(包括用法和开关),请在“帮助和支持中心”中搜索“cacls”。
  1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
  2. 请 确保您位于要访问其 System Volume Information 文件夹的分区的根文件夹中。例如,要访问 C:System Volume Information 文件夹,请确保您位于驱动器 C 的根文件夹中(即位于“C:”提示符处)。
  3. 键入下行内容,然后按 Enter: cacls "driveletter:System Volume Information" /E /G username:F 请确保按上面所示键入引号。此命令将具有“完全控制”权限的指定用户添加到文件夹。
  4. 在根文件夹中双击“System Volume Information”文件夹以将其打开。
  5. 如果需要在进行故障排除后删除这些权限,请在命令提示符处键入下行内容: cacls "driveletter:System Volume Information" /E /R username 此命令将删除指定用户的所有权限。

将计算机重新启动到安全模式时,下列步骤同样有效,因为当计算机在安全模式下运行时,简单文件共享会自动关闭。
  1. 打开“我的电脑”,右键单击“System Volume Information”文件夹,然后单击“属性”。
  2. 单击 “安全”选项卡。
  3. 单击“添加”,然后键入要向其授予该文件夹访问权限的用户的名称。通常,这是您登录时使用的帐户。
  4. 单 击“确定”,然后再次单击“确定”。
  5. 双击“System Volume Information”文件夹以将其打开
http://support.microsoft.com/kb/309531/zh-cn

磁盘阵列的做法

RAID,为Redundant Arrays of Independent Disks的简称,中文为廉价冗余磁盘阵列。

磁盘阵列 其实也分为软阵列 (Software Raid)和硬阵列 (Hardware Raid) 两种. 软阵列即通过软件程序并由计算机的CPU提供运行能力所成. 由于软件程式不是一个完整系统故只能提供最基本的 RAID容错功能. 其他如热备用硬盘的设置,
远程管理等功能均一一欠奉. 硬阵列是由独立操作的硬件提供整个磁盘阵列的控制和计算功能. 不依靠系统的CPU资源.
由于硬阵列是一个完整的系统, 所有需要的功能均可以做进去. 所以硬阵列所提供的功能和性能均比软阵列好. 而且,
如果你想把系统也做到磁盘阵列中, 硬阵列是唯一的选择. 故我们可以看市场上 RAID 5 级的磁盘阵列均为硬阵列. 软
阵列只 适用于 Raid 0 和 Raid 1. 对于我们做镜像用的镜像塔, 肯定不会用 Raid 0或 Raid 1。


作为高 性能的存储系统,巳经得到了越来越广泛的应用。RAID的级别从RAID概念的提出到现在,巳经发展了六个级别,其级别分别是0、1、2、3、4、5等。 但是最常用的是0、1、3、5四个级别。下面就介绍这四个级别。

RAID 0:将多个较小的磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。RAID 0亦称为带区集。它是将多个磁盘并列起来,成为一个大硬盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中。
所 以,在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能的,如果一个磁盘(物理)损坏,则所有的数据都无法使用。

RAID 1:两组相同的磁盘系统互作镜像,速度没有提高,但是允许单个磁盘错,可靠性最高。RAID 1就是镜像。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据 备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但是其磁盘的利用率却只有50%,是所有RAID上磁盘利用率最低的一个级别。

RAID Level 3


RAID 3存放数据的原理和RAID0、RAID1不同。RAID 3是以一个硬盘来存放数据的奇偶校验位,数据则分段存储于其余硬盘中。它象RAID 0一样以并行的方式来存放数,但速度没有RAID 0快。如果数据盘(物理)损坏,只要将坏硬盘换掉,RAID
控制系统则会根据校验盘的数据校验位在新盘中重建坏盘上的数据。不过,如果校验盘 (物理)损坏的话,则全部数据都无法使用。利用单独的校验盘来保护数据虽然没有镜像的安全性高,但是硬盘利用率得到了很大的提高,为n-1。

RAID 5:向阵列中的磁盘写数据,奇偶校验数据存放在阵列中的各个盘上,允许单个磁盘出错。RAID 5也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。这样,任何一个硬盘损坏,都 可以根据其它硬盘上的校验位来重建损坏的数据。硬盘的利用率为n-1。

RAID 0-1:同时具有RAID 0和RAID 1的优点。

冗余:采用多个设备同时工作,当其中一个设备失效时,其它设备能够接替失效设备继续工作的体系。在PC服务器上,通常在磁盘子系统、电 源子系统采用冗余技术。

liunx下VNCserver 桌面配置。。

先说我是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 ===============================

Samba配置文件常用参数详解

转自 : 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芯片。

linux下dhcp中继、

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

深入理解linux的权限设置和SUID,SGID以及粘滞位

我们知道文件的权限可以用三个八进制数字表示。其实文件的权限应该用四个八进制来表示,不过用 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

chmod详解


chmod命令是非常重要的,用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。
该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
1. 文字设定法
chmod [who] [+ | - | =] [mode] 文件名?
命令中各选项的含义为:
操作对象who可是下述字母中的任一个或者它们的组合:

u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。
操作符号可以是:
+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。
设置mode所表示的权限可用下述字母的任意组合:
r 可读。
w 可写。
x 可执行。
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
(为了方便普通用户执行一些特权命令,SUID/SGID程序允许普通用户以root身份暂时执行该程序,并在执行结束后再恢复身份
chmod +s 就是给某个程序或者教本以suid权限 )
t 保存程序的文本到交换设备上。
u 与文件属主拥有一样的权限。
g 与和文件属主同组的用户拥有一样的权限。
o 与其他用户拥有一样的权限。
文件名:以空格分开的要改变权限的文件列表,支持通配符。
在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example
使同组和其他用户对文件example 有读权限。
2. 数字设定法
我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。
例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。
数字设定法的一般形式为:
chmod [mode] 文件名?
例子:
(1)文字设定法:
例1:$ chmod a+x sort
即设定文件sort的属性为:
文件属主(u) 增加执行权限
与文件属主同组用户(g) 增加执行权限
其他用户(o) 增加执行权限 
例2:$ chmod ug+w,o-x text
即设定文件text的属性为:
文件属主(u) 增加写权限
与文件属主同组用户(g) 增加写权限
其他用户(o) 删除执行权限
例3:$ chmod u+s a.out
假设执行chmod后a.out的权限为(可以用ls – l a.out命令来看):
–rws–x–x 1 inin users 7192 Nov 4 14:22 a.out
并且这个执行文件要用到一个文本文件shiyan1.c,其文件存取权限为“–rw——-”,即该文件只有其属主具有读写权限。
当其他用户执行a.out这个程序时,他的身份因这个程序暂时变成inin(由于chmod命令中使用了s选项),所以他就能够读取shiyan1.c这个文件(虽然这个文件被设定为其他人不具备任何权限),这就是s的功能。
因此,在整个系统中特别是root本身,最好不要过多的设置这种类型的文件(除非必要)这样可以保障系统的安全,避免因为某些程序的bug而使系统遭到入侵。
例4:$ chmod a–x mm.txt
$ chmod –x mm.txt
$ chmod ugo–x mm.txt
以上这三个命令都是将文件mm.txt的执行权限删除,它设定的对象为所有使用者。
(2)数字设定法:
例1: $ chmod 644 mm.txt
$ ls –l
即设定文件mm.txt的属性为:
-rw-r–r– 1 inin users 1155 Nov 5 11:22 mm.txt
文件属主(u)inin 拥有读、写权限
与文件属主同组人用户(g) 拥有读权限
其他人(o) 拥有读权限
例2: $ chmod 750 wch.txt
$ ls –l
-rwxr-x— 1 inin users 44137 Nov 12 9:22 wchtxt
即设定wchtxt这个文件的属性为:
文件主本人(u)inin 可读/可写/可执行权
与文件主同组人(g) 可读/可执行权
其他人(o) 没有任何权限

grub 命令行用法

1、用命令行来引导Linux操作系统的步骤

通过命令行来引导操作系统的流程,也没有什么难的;无非是把指令手工输入到grub>提示符的后面;在这个过程中,tab键的命令补齐功能就 显得很重要了。如果您不知道有哪些命令,可以输入help;


1)进入GRUB的命令行模式 grub>

如果开机时,GRUB出现的是grub>,说明你没有/etc/grub/menu.lst ,您需要自己写一个才会GRUB的菜单,让我们来选择进入哪个系统。如果有GRUB的菜单,您可以按Ctrl+c组合 键进入GRUB的命令行模式,会出现grub> 提示符;

grub>



2)获取帮助GRUB的 help

只要您在grub>提示符的后面输入help 就能得到GRUB所有的命令提示;

grub> help
blocklist FILE boot
cat FILE chainloader [--force] FILE
clear color NORMAL [HIGHLIGHT]
configfile FILE device DRIVE DEVICE
displayapm displaymem
find FILENAME geometry DRIVE [CYLINDER HEAD SECTOR [
halt [--no-apm] help [--all] [PATTERN ...]
hide PARTITION initrd FILE [ARG ...]
kernel [--no-mem-option] [--type=TYPE] makeactive
map TO_DRIVE FROM_DRIVE md5crypt
module FILE [ARG ...] modulenounzip FILE [ARG ...]
pager [FLAG] partnew PART TYPE START LEN
parttype PART TYPE quit
reboot root [DEVICE [HDBIAS]]
rootnoverify [DEVICE [HDBIAS]] serial [--unit=UNIT] [--port=PORT] [--
setkey [TO_KEY FROM_KEY] setup [--prefix=DIR] [--stage2=STAGE2_
terminal [--dumb] [--no-echo] [--no-ed terminfo [--name=NAME --cursor-address
testvbe MODE unhide PARTITION
uppermem KBYTES vbeprobe [MODE]

如果需要得到某个指令的帮助,就在 help 后面空一格,然后输入指令,比如;

grub>help kernel



3)cat的用法;

cat指令是用来查看文件内容的,有时我们不知道Linux的/boot分区,以及/根分区所在的位置,要查看/etc/fstab的内容来得知, 这时,我们就要用到cat (hd[0-n],y)/etc/fstab 来获得这些内容;注意要学会用tab键命令补齐的功能;

grub> cat ( 按tab 键会出来hd0或hd1之类的;
grub> cat (hd0, 注:输入hd0,然后再按tab键;会出来分区之类的;
grub> cat (hd0,6)
Possible partitions are:
Partition num: 0, Filesystem type unknown, partition type 0x7
Partition num: 4, Filesystem type is fat, partition type 0xb
Partition num: 5, Filesystem type is reiserfs, partition type 0x83
Partition num: 6, Filesystem type is ext2fs, partition type 0x83
Partition num: 7, Filesystem type unknown, partition type 0x83
Partition num: 8, Filesystem type is reiserfs, partition type 0x83
Partition num: 9, Filesystem type unknown, partition type 0x82
grub> cat (hd0,6)/etc/fstab 注:比如我想查看一下 (hd0,6)/etc/fstab的内容就这样输入;
LABEL=/ / ext3 defaults 1 1
/dev/devpts /dev/pts devpts gid=5,mode=620 0 0
/dev/shm /dev/shm tmpfs defaults 0 0
/dev/proc /proc proc defaults 0 0
/dev/sys /sys sysfs defaults 0 0
LABEL=SWAP-hda1 swap swap defaults 0 0
/dev/hdc /media/cdrecorder auto pamconsole,exec,noauto,
managed 0 0

有的弟兄可能会说,我不知道Linux安装在了哪个分区。那根据文件系统来判断一个一个的尝试总可以吧我;只要能cat出/etc/fstab就能 为以后引导带来方便;

主要查看/etc/fstab中的内容,主要是Linux的/分区及/boot是否是独立的分区;如果没有/boot类似的行,证明/boot和 Linux的/处于同一个硬盘分区;比如上面的例子中LABEL=/ 这行是极为重要的;说明Linux系统就安在标签为LABEL=/的分区中;

如果您的Linux系统/boot和/没有位于同一个分区,可能cat (hd[a-n],y) 查到的是类似下面的;

LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2


4) root (hd[0-n,y) 指令来指定/boot所在的分区;

其实这个root (hd[0,n],y)是可以省略的,如果省略了,我们要在kerenl 命令中指定;我们前面已经说过 (hd[0-n],y) 硬盘分区的表示方法的用途;主要是用来指定 /boot所在的分区;

比如我们确认/boot和 (hd0,6),所以就可以这样来输入root (hd0,6)

grub> root (hd0,6)

如果发现不对,可以重新来过;没有什么大不了的;


5) kernel 指令,用来指定Linux的内核,及/所在的分区;

kernel 这个指令可能初学者有点怕,不知道内核在哪个分区,及内核文件名的全称是什么。不要忘记tab键的命令补齐的应用;

如果我们已经通过root (hd[0-n],y) 指定了/boot所在的分区,语法有两个:

如果/boot和Linux的/位于同一个分区,应该是下面的一种格式;

kernel /boot/vmlinuz在这里按tab键来补齐,就看到内核全称了 ro root=/dev/hd[a-z]X

如果/boot有自己独立的分区,应该是;

kernel /vmlinuz在这里按tab键来补齐,就看到内核全称了 ro root=/dev/hd[a-z]X

在这里 root=/dev/hd[a-z]X 是Linux 的/根所位于的分区,如果不知道是哪个分区,就用tab出来的来计算,一个一个的尝试;或用cat (hd[0-n],y)/etc/fstab 中得到Linux的/所在的分区或分区的标签;

grub> kernel /boot/在这里按tab键;这样就列出/boot中的文件了;
Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369
_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4 grubBAK memtest86+-1.55
.1 xen-syms xen.gz
grub> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
[Linux-bzImage, setup=0x1e00, size=0x18e473]

注解: root=LABEL=/ 是Linux的/所在的分区的文件系统的标签;如果您知道Linux的/在哪个具体的分区,用root=/dev/hd[a-z]X来指定也行。比如下面 的一行也是可以的;

grub> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7

也可以把/boot所在的分区的指定 root (hd[0-n],y)这行省掉,直接在kernel 中指定/boot所在的分区;所以就在下面的语法;

如果是/boot和Linux的根同处一个分区;

kernel (hd[0-n],y)/boot/vmlinuz ro root=/dev/hd[a-z]X

比如:

grub>kernel

如果是/boot和Linux所在的根不在一个分区;则是;

kernel (hd[0-n],y)/vmlinuz ro root=/dev/hd[a-z]Xgrub> kernel (hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7
[Linux-bzImage, setup=0x1e00, size=0x18e473]

或下面的输入,以cat 出/etc/fstab内容为准;

grub> kernel (hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
[Linux-bzImage, setup=0x1e00, size=0x18e473]


6)initrd 命令行来指定initrd文件;

grub> initrd /boot/initrd在这里tab 来补齐;
grub> initrd /boot/initrd-2.6.11-1.1369_FC4.img
[Linux-initrd @ 0x2e1000, 0x10e685 bytes]

如果/boot是独立的一个分区,应该是如下样子的语法;比如下面的;

grub> initrd /initrd在这里tab 来补齐;
grub> initrd /initrd-2.6.11-1.1369_FC4.img
[Linux-initrd @ 0x2e1000, 0x10e685 bytes]



7)boot 引导系统;

grub>boot2、通过GRUB指令来引导 Windows ;

其实我们会写menu.lst了,在menu.lst中的除了title外,都是一条条指
令;如果我们启动 Windows ,只是输入指令就行了;

比如 Windows的分区在 (hd0,0),我们在开机后,按ctrl+c ,进入GRUB的命令模式;就可以用下面的

grub> rootnoverify (hd0,0)
grub> chainloader +1
grub> boot

UID,EUID,GID,EGID的关系

什么是UID,EUID,GID,EGID?
真正用户标识号(UID):该标识号负责标识运行进程的用户。roor是0.
有效用户标识号(EUID):该标识号负责标识以什么用户身份来给新创建的进程赋所有权、检查文件的存取权限和检查通过系统调用kill向进程发送软 中断信号的许可权限。我认为是EUID调用UID执行权限。
真正用户组标识号(GID):负责标识运行进程的用户所属的组ID。
有效用户组标识号(EGID):用来标识目前进程所属的用户组。可能因为执行文件设置set-gid位而与gid不同。

每个用户有一个uid和gid, 这个记录在/etc/passwd, /etc/group里面,每个文件有一个uid, 就是拥有这个文件的用户的uid。每个用户运行一个程序时是以自己的uid作为身份的,如果这个程序被设置了stick位,则这个程序以程序拥有者的 uid作为身份,程序运行时的这个身份(uid)就是euid, 表示这个程序以那个用户的身份运行(这样就拥有那个用户的权限,比如读取属于他的文件)。所以程序运行时的身份euid一般情况下都是运行这个程序的人的 uid,有时会是这个程序拥有者的uid。

以passwd程序为例,这个程序要写/etc/passwd, /etc/shadow,一般用户对这些文件是没有写权限的,用户A运行了passwd,这个passwd进程的euid就是uidA,当要写这两个文件 时,passwd调用了setuid(seteuid?),这样这个passwd进程的euid就是uidRoot了,passwd就可以写那两个文件 了,写完之后euid再切换成uidA.这个过程就实现了对/etc/passwd, /etc/shadow的受控访问:普通用户只允许按照passwd程序定义好的方式修改这两个文件。

下面来看下这两个文件:

(1)/etc/passwd
功能:存放系统的用户帐号信息
内 容:用户名 密码 UID GID 所属组用户主目录 SHELL
实例: u1 : x : 0 : 0 : u1     /home/u1 :/bin/bash

注:如果采用了shadow,此处存放口令的为屏蔽字符,真正密码保存在/etc/shadow中 。

如果不采用shadow,采用明文件显示,如果采用md5加密的话所存放的为密文。

(2)/etc/shadow

功能:存放用户口令(加密过的口令)
实例: u1 : bq$# : 10750: 0: 999 :7 : -1 :-1 : 12546
说明: u1 用户名
b1$# 加密的口令  
10750 从1970.1.1开始计算,该口令修改后已过去了多少天
0   需要再过多少天这个口令可以被修改
9999 密码的有效期
7 口令失效多少天前发出警告
-1 口令失效多少天之后禁用这个账户
-1 口令从1970.1.1计算,该口令已经禁用了多少天
12546 保留