加限制的外壳这种外壳几乎与普通的外壳相同,但是该外壳能限制一个用户的能力,不允许用户有某些标准外壳所允许的行为:
• 不能改变工作目录(c d)。
• 不能改变PAT H或SHELL 外壳变量。
• 不能使用含有“/”的命令名。
• 不能重定向输出(>和> >)。
• 不能用e x e c执行程序。用户在登录时,在配置文件后系统就强加上了这些限制,如果用户在. p r o f i l e文件正被解释时按了B r e a k键或D e l e t e键,该用户将被注销。
[@more@]这些简单的限制,使用写受限制用户的. p r o f i l e文件的系统管理员可以对用户能使用什么命令,进行完全的控制。应当注意:系统V加限制的外壳实际上不很安全,在有敌对的用户时不要用。系统V版本2 以后的版本中加限制的外壳更安全些。但若允许受限制的用户使用某些命令(如e n v、c p、l n),用户将能绕过加限制的外壳,进入非限制的外壳。
如果的确想限制一个用户,可用c h r o o t()子程序为用户建立一个完全隔离的环境。这个子程序改变了进程对根目录的概念,因此可用于将一个用户封在整个文件系统的某一层目录结构中,使用户无法用c d命令转出该层目录结构,不能存取文件系统中其他部分的任何文件。这种限制方式比加限制的外壳好得多。用户使用的命令应由系统管理员在新的r o o t目录中建立一个b i n目录,并建立用户可用命令的链到系统的/ b i n目录中相应命令文件上(若在不同的文件系统则应拷贝命令文件)。
还应建立新的p a s s w d文件,保留系统登录帐户(为了使ls -l正确地报告与受限制的子文件系统中的文件相关的正确登录名)和用户帐户,但系统帐户的口令改为N O L O G I N以使受限制的用户不能取得系统登录的真实口令,使“破密”程序的任何企图成为泡影。u t m p文件是w h o 所需要的,该文件含有系统中已登录用户的列表。新的/ e t c / p r o f i l e文件也不是建链文件,以便受限制的用户可以执行不同的启动命令。 / d e v目录中的终端设备文件被链接到新的/ d e v目录下,因为命令w h o产生输出时要查看这些文件。在系统V及以后的L i n u x版本中,l o g i n命令有c h r o o t()的功能。如果口令文件中用户入口项的登录外壳域(最后一个域)是*,l o g i n将调用c h r o o t()把用户的根目录设置成为口令文件中用户入口项登录目录域指定的目录。然后再调用e x e c()执行l o g i n,新的l o g i n将在新子系统文件中执行该用户的登录。 c h r o o t()并不是把r o o t封锁在一个子文件系统中,所以给受限制用户用的命令时应加以考虑,具有r o o t的S U I D许可的程序可能会给予用户r o o t的能力。应当将这种可能减低到最小程 258计计第五篇Linux 系统安全分析下载度,交给用户使用的命令应当取自清除了S U I D陷井的系统命令。链接文件可减少磁盘占用区,但要记住,当与敌对用户打交道时,链接到c h r o o t目录结构(尤其是命令)的系统文件是很危险的。如果建立一个像这样的限制环境,应确保对安装到新的/ b i n的每条命令都做过测试,有些程序可能有系统管理员未曾想到的出乎意料的执行结果。为了使这些命令能运行,还得在加限制的子文件系统中加服务目录或文件,如: / t m p、/ e t c / t e r m c a p、/ d e v / s w a p、/ d e v / m e m、 / u s r / l i b / t e r m i n f o、/ d e v / k m e m,用户所登录的/ d e v中的t t y文件以及/ L i n u x。有些程序在子文件系统中运行时不会很好,如果将假脱机程序和网络命令拷贝到加限制的子文件系统中,并放在为两条命令专建的目录层结构下,它们可能也运行不了。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/301263/viewspace-912936/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/301263/viewspace-912936/