我们的生活越来越方便,那是因为科技发展的费城迅速。现在,电脑越来越普及,我们应用电脑,可我们知道电脑是怎样工作的么?电脑中必不可少的就是操作系统。而Linux操作系统的发展非常迅速,有赶超微软的趋势。这里介绍Linux操作系统的知识。
1.. 为什么我们都建议不要用 root 账号登录?
> ROOT means system manager
> 有操作系统及控制系统运作的一切权限
没错,root 的权限太大了,如果 root 造成了问题,例如触发了病毒、执行了木马程式、错误删除档案、...等等,都可能是无法挽救而且是致命的~~
所以,除非迫不得己,不要用 root 来登录系统。当真需要的时候,请用 su 或 sudo 来做。
2.. 为什么不要把 . 加到 $PATH 中?
现在如果你把 . 加到$PATH
假如有人在tmp底下放一个叫做ls的shell script
#! /bin/sh
/bin/rm -rf /
然后root跑到/tmp底下 下个ls...
了解到会发生什么状况了吧~
3.. 为什么用 root 执行命令最好用绝对路径?
这道理和前面一个其实是很类似的
假设你的$PATH是这样
/bin:/usr/bin:....
你要执行的命令放在/usr/bin
如果有某个有心人士设法把相同名称的指令放进了/bin
你执行到的是哪个指令呢?...
上两题前面有朋友回答过了,说得非常好,请参考。
补充一点:
由于可能会被 root 执行的 shell script,通常也会重新定义 PATH 变数,以限制命令的读入范围,
当然,最好还是用绝对路径了~~(如果连命令本身都已经成了木马程式,或被修改过,那就另当别论。)
4.. 为什么我们要设定 umask ?
> 控制档案产生后的预设权限
‘效果’是设定预设权限,‘目的’就是确定档案只能被授权的账号执行或修改或读取。比方说,在 redhat 系统上,root 的 umask 是 022 ;而普通账号则是 002 ,您会发现 root 被 umask 拿掉的权限更多。而钗h程式在建立新档案的时候,也会调整 umask 之后才进行。
5.. 为什么谨慎使用 chown 和 chmod ?
> chown是改变群组和持有人
> chmod是改变档案 r w x 三权限
不小心使用,会让有些本来不应该获得权限的人‘意外’的获得了权限,当然也会让本来应该获得权限的人失去了权限。如果觉得 permission 还不足以保护,那么,再利用 attribute (chattr)来作进一步的保护。
为什么我们要在系统上面设定档案权限?请好好思考一下~~!我们要知道:
“设定权限不是目的,而是手段而已。”
6.. 为什么不要谨慎使用 SGID 和 SUIG?
> 就等于别人利用你的模样做坏事
准确来说,主要是针对 root 权限来设定的,这往往是程式设计者或管理员要花心思好好设定才对,绝对不能贪图方便,而大开 root 的 SGID 和 SUID 。(后面我提到的 sendmail ,有些动作就必须以 root 来执行,所以也让 sendmail 成了入侵者的最爱~~)
当然,好的 SGID 和 SUID 还能限制程式只能由某些权限低的账号来执行。您应该会明白为什么 apache 所 fork 出来的 children ,都是 nobody 身份了吧?
7.. 为什么我们会使用 sudo 来限制普通使用者执行 root 的动作?
> 如果没有sudo的话
> 要执行只能靠su之后,再动作
> 那就需要知道root's passwd
不是那么简单:
首先,root 的密码不宜对太多人公开。其次,如果一个人成为 su 之后,可以用 root 身份做任何事情,但用 sudo 的话,您可以限制一个人用 root 身份做特定的事情。
8.. 为什么 ftp 和 telnet 会拒绝 root 连线?
> root 最大最有影响力
对,也是老生常谈的问题啦。再陪搭 PAM、tcpwrapper、ipfilter 这些机制,来限制服务和程式的执行对象,也在很大程度上避免了高权限服务程式的危险性。
9.. 为什么要随时留意安全资讯,并及时修补程式漏洞?
> 因为病毒的日新月异
> 和漏洞的发现都可能发生在每一个今天
因为任何程式有可能获得 root 的权限,例如前不久的 wu-ftp 漏洞,bind 漏洞,rpc 漏洞,等等...如果不及时修补,后果非常危险。如果那些程式漏洞不能获得 root 的权限,那么入侵者也不愿意花大量时间去破解,毕竟要考虑“投入/回报”比率的。
10.. 为什么 sendmail 后来加入了 restricted shell ?
> 不清楚.........没玩sendmail server
前面谈 SUID/SGID 和程式漏洞的时候,知道有些程式会获得 root 的权限,而 sendmail 在过往之所以最被入侵者喜爱,也最为人不满之处,就是破解 sendmail 很容易获得 root 权限,其因之一,就是 sendmail 允阴z呼叫其它命令,或将结果 pipe 到 shell 中执行,而这样的 shell 有可能是一个 root shell ,所以非常危险。
后来,sendmail 在编译的时候,允许加入 restricted shell 只有那些被置于(或 link 至) rsh 底下的命令才能被 sendmail 执行,
这样在一定程度上,限制了 sendmail 的活动范围。
同样的,人们在编译 bind 的时候,也是使之以 named 的身份来执行,同时也用 chroot 来限制 named 的活动范围,其目的,也是防范入侵者活动 root 权限而损害系统的安全性。
回到我们前面讨论的,以病毒为例也一样:如果这个病毒是 root 执行的,那它就可以为所欲为了;但如果病毒以权限较低的身份来执行,那它的影响也是有限的。所以,为什么 linux 下面没有人乐意写病毒?或是比较少听到 linux 有病毒发作呢?因为真要病毒发挥威力,是有一定条件的。而不像是 windows 系统,任何一个人(或 script)执行病毒,效果都一样的。
既然这样,您愿意花大力气在 linux 系统上发展病毒、然后等那些无知的 root 来执行吗?难度显然高多了!~~当然,也不是没有人会在 linux 上发展病毒,只是,其“投入/回报”比率的多寡,和愿意投入度的取舍而已~~
知道了这些Linux操作系统知识,希望你能够学好。
【编辑推荐】