Linux用户和组,su和sudo的理解

对Linux的用户和组概念的理解,对配置Linux安全来说是很重要的。
这里我不进行说明用户和组的添加删除之类的使用说明!
主要进行说明该如何理解Linux中的用户和组的概念。
为了更好的理解这些概念,我们引入下面这个例子,其中可能有些地方不妥当,但都是为了方便我们理解。

先介绍下出场角色:
root:Linux系统用户     饰演  房东
anykoro:Linux普通可登陆用户 饰演  房客
gardener:Linux不可登陆用户(nologin) 饰演  园丁
nginx:HttpServer  饰演  WebServerUser
varnish:CacheServer  饰演  CacheServerUser
naigos:Linux监控程序  饰演  PerformanceMonitor
crontab或rc.local  : Linux执行任务  饰演 管家

注:以上的WebServerUser,CacheServerUser,PerformanceMonitorUser代表对应程序所属的用户,同时我们认为不使用root作为他们的用户。

我们的故事是这样开始,
root买了一栋很大的房子,一直一个人悠闲自得的住在里面。突然有天root碰到了朋友anykoro,两个人一见如故,聊得很是开心。所以root让anykoro搬到自己这里来书,anykoro欣然同意了。于是root给anykoro一个房间(对应/home/anykoro),但是root没有告诉anykoro的活动范围(对应权限),所以anykoro就只能在自己的屋子里摆弄东西或者到外面大厅走走看看。root一看,不能这样,anykoro可是他的挚友啊。于是他和anykoro说,这里、这里、这里,这些等等,你都是可以用的,同时告诉他,你和他是同一战线(都属于root组),所以只要写着战友可用的,anykoro你就可以用。(对应权限系统中的gourp部分的执行权限)。anykoro大悦,果然生活多了很多自由。

光阴荏苒,2个月转眼间就过去了,root惊觉,屋外的花园中杂草丛生。这样放人不管也有点不像话,于是root亲自上阵,出去除草(对应 su root 除草)。可能长期不锻炼,root感觉太累了,而且还修剪的不好。root觉得他要找个园丁专门除草,于是他到中介(yum repo之类的地方)找了个园丁gardener(对应使用的程序)。但是园丁,毕竟是外人,是不能让他进屋子的,另外也没有必要让他进屋子,所以root就和gardener说,你就在外面收拾花草就行,我就不让你进屋子了。(对应指定useradd gardener -s  /sbin/nologin)于是gardener就只能在外面除草,而无法进屋子了。此时root觉得房子有点大,于是又找了几个房客,他们分别是WebServerUser,CacheServerUser,PerformanceMonitorUser。在我们这么注重人权的时代,肯定要讲求每个人的私人空间。所以,每个房客都不可以随意进入别人的屋子(/home/对应user的目录)。Ok。就这样大家都其乐融融了。

又过了2个月,root发现他有时候要出去,这样他有些私事(指只有root可以执行)就不能干了。同时,anykoro有的时候要用一些只属于root的东西。但是root又不想把私有物,变成战友可享。那么root怎么办呢?他写了份授权表,上面说明了anykoro可以以root的名义去做哪些事情。(对应sudo root  xxx)。这样就方便了,无论root在否,只要根据这份授权表anykoro就可以使用授权了的东西了。

又过了2个月,WebServerUser开小卖店了(对应网站)。有很多客户(对应访问者)进来买东西,一开始root觉得很好玩,所以和WebServerUser说,你的小卖店给我开几天玩玩。于是WebServerUser同意了。此时,这个店暂时属于root了。很多客户进来了买东西了,大部分的客户都是好的,但是还是有一部分客户居心叵测。其中就有个恶劣的客户很巧妙的利用了root为他做坏事(对应黑客侵入系统),这个客户告诉root,按他说的做事正确的,root也不知道哪根经搭错了了(对应bug),信以为真了。root真的按照这个客户的要求做了。root毕竟是一家之主,到哪里都畅通无阻。。。所以悲剧自然发生了。。。等root反映过来,突然发现房子被自己破坏了(对应破坏服务器),钱财也傻乎乎的送人了(对应数据偷取)。root那叫一个悔啊~~~!

第二天,root突然反应过来,自己不能开这个店,立即把店还给了WebServerUser。WebServerUser不解,问root,怎么这么快就过瘾了?root此时心情自然还没有平复,很大声的说了句:“为了安全!同时我还要给你限制严格的权限,只给你必要的!”。WebServerUser不解,问root,为什么这样?root把自己被骗的事情告诉了WebServerUser。补充道,“我把你的权限放低了后,即便你被骗了,你也侵入不了我的安全系统,也拿不到我的东西。”WebServerUser听后明白了,的确root被骗,全线畅通无阻,自己被骗,最多只是自己的屋子遭窃。心中暗暗感叹道,“root还真精,真是吃一堑长一智。”

2个月后,root很自鸣得意,自从设置了WebServerUser的权限后,只有WebServerUser的屋子遭窃,没有其他的地方受损。这个成果还是很显著的。突然门口传来大叫,“有没有人?我要买东西!”。root心想,这个WebServerUser搞毛啊。人上哪了?但是root知道,自己觉得不能去卖货,防止,又有人利用他,所以,他到处找WebServerUser,让他起来开店。原来WebServerUser还在睡觉(可以对应关机没有自动启动),root大叫一声WebServerUser给我起来开店(对应su WebServerUser 开店)。WebServerUser柔柔了困倦的双眼,起来开店了。

第二天,我们聪明的root,突然觉得下次可能还会有类似的情况,于是他告诉管家设置了一个提醒(比如 设置为开机自动启动),“当该开店的时候,WebServerUser还在睡觉,就把它叫起来开店。” 自此,小店一直开得很稳定。

1年后,小店还在很稳定的开着,root家中也没有发生过什么不良事件,anykoro也过得有滋有味。一切都这么美好。

注:本文没有涉及端口问题,端口问题,可以想象成,有很多个门,可以现在某些门的关闭和开放,只是这些门特殊点,一个门只能给一个人用。root还需要将特定的门给特定的人。还得好好把控门的使用者的权限,防止不法分子入侵。在上面的事例中,小店的门其实对应的就是80端口。





 » 订阅本站:RSS订阅

发表评论

您也可以使用微博账号登陆

无觅相关文章插件,快速提升流量