📄 00000004.htm
字号:
<BR> 392 ? S 0:00 httpd <BR> <BR> 26070 ? S 0:00 httpd <BR> <BR> 26071 ? S 0:00 httpd <BR> <BR> 26072 ? S 0:00 httpd <BR> <BR> 26073 ? S 0:00 httpd <BR> <BR> 26074 ? S 0:00 httpd <BR> <BR> 显然杀死httpd进程的命令是 <BR> <BR> kill `cat httpd.pid` <BR> <BR> 注意反引号是执行其中的命令。 <BR> <BR> 但是要注意sendmail有所不同,其pid文件除了包含pid号之外,还包含了sendmail的 <BR>启动命令: <BR> <BR> [wanghy@mail run]$ cat sendmail.pid <BR> <BR> 363 <BR> <BR> /usr/sbin/sendmail -bd -q1 <BR> <BR> 下面是常用的网络服务器守护进程的列表: <BR> <BR> inetd:启动其他网络服务的服务器 <BR> <BR> 下面是由inetd启动的常用服务器: <BR> <BR> sendmail:邮件传输服务器 <BR> <BR> in.telnetd:telnet服务程序 <BR> <BR> in.ftpd:ftp服务器 <BR> <BR> pop3d:邮局协议服务器,用于向邮件客户机器最终传送邮件和管理服务器上存储的邮 <BR>件。 <BR> <BR> 下面是一些其他的服务器: <BR> <BR> httpd:Apache WWW服务器的守护程序 <BR> <BR> smbd:windows 9x类型文件服务程序 <BR> <BR> nfsd:网络文件系统服务器 <BR> <BR> portmap:端口映射服务,为很多其他服务器提供服务 <BR> <BR> lpd:打印机服务程序 <BR> <BR> named:网络域名服务器 <BR> <BR> nmbd:广播netbios名字的服务程序 <BR> <BR> innd:电子新闻组服务器 <BR> <BR> routed:路由服务器 <BR> <BR> sshd:SSL shell服务程序 <BR> <BR> 守护程序对信号的响应与一般进程稍有不同,例如,SIGHUP信号通常将使接受到这个 <BR>信号的程序终止。但是当一个守护程序接受到这个信号时,它简单地让自己重新启动。 <BR>实际上,在调试服务器时经常需要重新启动守护进程,而killall –HUP是简单可靠地重 <BR>启某个服务器守护进程的标准方式。 <BR> <BR> 另一个容易出现问题的地方是守护程序的uid。如同我们在第一张中解释的那样,为了 <BR>进行服务,守护程序必须将自己绑定(bind)到某个端口。TCP/IP实现中保留小于1024 <BR>的端口号用于提供服务,而更高的端口可以用于客户程序发起请求。考虑到这种情况, <BR>UNIX要求凡是绑定到数值小于1024的端口的程序必须具有root权限,这意味着大部分服 <BR>务器守护进程必须以root身份执行,因此它们可以做任何事情,这潜在地对系统的安全 <BR>性构成了威胁(显然,你不能从普通用户的身份启动httpd)。幸运的是,大部分服务器 <BR>守护程序在设计的时候都已经考虑了这个问题,有些程序让inetd来完成绑定,因此它们 <BR>可以以一个比较低的权限来执行,而另外一些程序则用一个具有root权限的进程处理所 <BR>有的请求,当得到一个请求时,它forks出一个子进程,并且将子进程的euid设成权限比 <BR>较低的用户,然后再让子进程处理这个请求。例如,apache服务器当使用独立程序启动 <BR>时就使用类似这样的方式。也有一些守护进程必须以root身份执行,最典型的是sendma <BR>il,对于这样的程序必须小心,因为许多攻击都是利用这种程序的漏洞。 <BR> <BR> 2.6 账户管理 <BR> <BR> 在你安装系统之后,你必须建立一些用户以便使用。尽管技术上建立和删除账户应该 <BR>在日常管理的部分完成,但是我们这本书是一本教程,如果等到讲日常管理那一章再出 <BR>理,你的Linux可能已经被错误操作破坏了n次了。 <BR> <BR> 2.6.1 口令文件 <BR> <BR> Linux是一个多用户操作系统,在系统中可以有多个用户在同时工作,为了管理账户, <BR>Linux使用两个文件,称为/etc/passwd和/etc/shadow。 <BR> <BR> passwd文件在前面就已经提到过,现在来详细的解释一下,让我们看一看前面提到的 <BR>/etc/passwd文件,通常这个文件每行代表一个用户,格式是这样: <BR> <BR> wanghy: $1$EtinNb.u$uMi3KAS9l9XY1CNJ99zWB1:501:501::/home/wanghy:/bin/bash <BR> <BR> 各个栏目之间用冒号分开,第一栏是用户的名字,就是在系统的login:提示符下输入 <BR>的名字,接下来的一栏是加密后存放的口令字,在一般的UNIX系统上,这个加密使用DE <BR>S加密算法,但是由于计算机技术的发展,短密钥的DES加密技术已经无法提供足够的安 <BR>全性,而长密钥加密系统要受到美国法律的限制。目前,Linux支持MD5加密方式,这种 <BR>加密方式产生的密文就类似于上面的情况。当然,你仍然可以使用原来的DES短密钥方式 <BR>,但其可靠性不是很高。 <BR> <BR> 下面的两栏是uid和gid,UNIX通过这两个值来确定用户身份。然后有一栏是空的,这 <BR>一栏曾经用来填写用户的详细资料,不过UNIX从不使用这个内容,因此你可以让它空着 <BR>。 <BR> <BR> /home/wanghy是这个用户的宿主目录,注意这个目录必须是这个用户可以访问的,否 <BR>则无法登录,接下来,/bin/bash是用户登录时使用的缺省shell。 <BR> <BR> 上面说的是passwd的原始形式,不过,这种形式中口令密文被存放在passwd中,意味 <BR>着任何人都可以看到。尽管MD5的加密强度比较高,但是利用高性能的计算机和蛮力搜索 <BR>的方法,完全有可能用穷举的方式找出用户的口令原文(办法就是猜测一个口令,加密 <BR>演算后和密文比较,如此循环)。特别是UNIX的口令通常限制为不多于8个字符,一个有 <BR>足够决心的口令猜测者是有可能完成的。因此,几乎所有的Linux系统都使用shadow方式 <BR>,这种方式中,密文保存在shadow文件中,而passwd文件中只有一个"x",例如,在/et <BR>c/passwd中: <BR> <BR> wanghy:x:501:501::/home/wanghy:/bin/bash <BR> <BR> 而同时系统中有一00个shadow文件,它才是真实的password文件,但是它被设置为只 <BR>有超级用户才能读取,下面是/etc/shadow文件中的相应内容: <BR> <BR> wanghy:$1$EtinNb.u$uMi3KAS9l9XY1CNJ99zWB1:10977:0:99999:7:-1:-1:134550524 <BR> <BR> 在口令密文之后的几项是一些设置,例如口令被更改的时间,口令的有效期等等。不 <BR>过你实在没有理由一定要研究它们,useradd和adduser程序会做同样的事情。 <BR> <BR> 传统上,可以使用直接编辑passwd文件的方式来管理用户信息,这种方式最常用的是 <BR>用来建立一个没有口令的用户。但是如上所述,要使得更改有效,必须同时修改passwd <BR>和shadow文件才能完成这个工作,为了解决这个问题,可以使用pwconv程序,它可以根 <BR>据/etc/passwd的内容对/etc/shadow文件进行同步。 <BR> <BR> <BR> $ pwconv <BR> <BR> 通过passwd中的口令栏的设定(实际是/etc/shadow文件的设定),可以设置不需要口 <BR>令就可以登录的用户和禁止登录的用户,例如,这样的passwd设定: <BR> <BR> testvv:*:502:502::/home/testvv:/bin/bash <BR> <BR> 口令处的星号将testvv设置为无法登录,相反,如果这里是空的,表示不需要口令: <BR> <BR> testvv::502:502::/home/testvv:/bin/bash <BR> <BR> 另一对用来做账户管理的文件是/etc/group和/etc/gshadow。这两个文件用来管理用 <BR>户组,其关系相当于passwd和shadow,例如,下面的group文件: <BR> <BR> root:x:0:root <BR> <BR> bin:x:1:root,bin,daemon <BR> <BR> daemon:x:2:root,bin,daemon <BR> <BR> sys:x:3:root,bin,adm <BR> <BR> adm:x:4:root,adm,daemon <BR> <BR> 定义了五个用户组,每行一个,如bin的用户组gid是1,其中包括root,bin和daemon三 <BR>个用户。对应的口令文件在/etc/gshadow,同样可以手工编辑/etc/group文件进行用户 <BR>组的管理,然后用grpconv来同步: <BR> <BR> $ grpconv <BR> <BR> <BR> 2.6.2 账户的添加和删除 <BR> <BR> 显然,我们可以手工修改/etc/passwd文件来实现账户的添加和删除,不过除非你右受 <BR>虐倾向,否则意义不大(如果你真的要这么干,你可以使用vipw程序)。相反,我们建 <BR>议使用adduser程序。 <BR> <BR> adduser程序最简单的用法是 <BR> <BR> adduser [用户名] <BR> <BR> 例如,adduser test将建立一个名为test的用户。 <BR> <BR> adduse有一些常用的命令开关: <BR> <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -