仓酷云
标题:
Linux编程:怎样办理SELinux成绩仓酷云
[打印本页]
作者:
冷月葬花魂
时间:
2015-1-18 11:29
标题:
Linux编程:怎样办理SELinux成绩仓酷云
功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间。
提及SELinux,多半Linux刊行版缺省都激活了它,可见它对体系平安的主要性,惋惜因为它自己有必定的庞大性,假如不熟习的话常常会发生一些看似稀里糊涂的成绩,招致人们经常保持利用它,为了不剖腹藏珠,学学怎样办理SELinux成绩是很有需要的。
我们以CentOS情况为例重现一个十分罕见的SELinux成绩:
起首必要确认SELinux处于激活形态,可使用getenforce或sestatus命令:
shell>getenforceEnforcingshell>sestatusSELinuxstatus:enabledSELinuxfsmount:/selinuxCurrentmode:enforcingModefromconfigfile:enforcingPolicyversion:24Policyfromconfigfile:targeted
复制代码
注:关于SELinux的基本常识先容请参考鸟哥的Linux私房菜中相干的先容。
我们还必要确认体系已安装并启动了Apache,没有的话就YUM装一个,这很复杂,就未几说了,接着在root目次创立一个测试文件test.html,以下:
shell>cat/root/test.htmlhello,world.
复制代码
然后把这个测试文件拷贝到Apache的DocumentRoot目次,我的Apache是经由过程YUM安装的话,缺省是/var/www/html目次,以下:
shell>cp/root/test.html/var/www/html
复制代码
接着扫瞄一下,假如没出甚么幺蛾子,应当统统都在乎料当中,以下:
shell>curlhttp://localhost/test.htmlhello,world.
复制代码
看到这,你大概以为我言之无物,别发急,上面就是见证事业的时分了:
一样仍是谁人测试文件test.html,不外此次不再是拷贝,而是剪切,以下:
shell>mv/root/test.html/var/www/html
复制代码
接着扫瞄一下,怎样,了局很出人意表吧,居然提醒权限毛病,以下:
shell>curlhttp://localhost/test.html<!DOCTYPEHTMLPUBLIC"-//IETF//DTDHTML2.0//EN"><html><head><title>403Forbidden</title></head><body><h1>Forbidden</h1><p>Youdonthavepermissiontoaccess/test.htmlonthisserver.</p></body></html>
复制代码
固然,我们如今晓得这个成绩是因为SELinux引发的,但还不知其以是然,实践上成绩的缘故原由此时已被audit历程纪录到了响应的日记里,能够如许检察:
shell>audit2why</var/log/audit/audit.log
复制代码
了局信息可读性不是很好,假如看不懂的话,保举安装setroubleshoot套件:
shell>yuminstallsetroubleshoot
复制代码
它自己是一个GUI套件,不外个中包括的一个sealert命令对我们命令行用户很有效:
shell>sealert-a/var/log/audit/audit.logSummary:SELinuxispreventing/usr/sbin/httpd"getattr"accessto/var/www/html/test.html.DetailedDescription:SELinuxdeniedaccessrequestedbyhttpd./var/www/html/test.htmlmaybeamislabeled./var/www/html/test.htmldefaultSELinuxtypeishttpd_sys_content_t,butitscurrenttypeisadmin_home_t.Changingthisfilebacktothedefaulttype,mayfixyourproblem.Filecontextscanbeassignedtoafileinthefollowingways.*Filescreatedinadirectoryreceivethefilecontextoftheparentdirectorybydefault.*TheSELinuxpolicymightoverridethedefaultlabelinheritedfromtheparentdirectorybyspecifyingaprocessrunningincontextAwhichcreatesafileinadirectorylabeledBwillinsteadcreatethefilewithlabelC.Anexampleofthiswouldbethedhcpclientrunningwiththedhclient_ttypeandcreatingafileinthedirectory/etc.Thisfilewouldnormallyreceivetheetc_ttypeduetoparentalinheritancebutinsteadthefileislabeledwiththenet_conf_ttypebecausetheSELinuxpolicyspecifiesthis.*Userscanchangethefilecontextonafileusingtoolssuchaschcon,orrestorecon.Thisfilecouldhavebeenmislabeledeitherbyusererror,orifannormallyconfinedapplicationwasrununderthewrongdomain.However,thismightalsoindicateabuginSELinuxbecausethefileshouldnothavebeenlabeledwiththistype.Ifyoubelievethisisabug,pleasefileabugreportagainstthispackage.AllowingAccess:Youcanrestorethedefaultsystemcontexttothisfilebyexecutingtherestoreconcommand.restorecon/var/www/html/test.html,ifthisfileisadirectory,youcanrecursivelyrestoreusingrestorecon-R/var/www/html/test.html.FixCommand:/sbin/restorecon/var/www/html/test.html
复制代码
此次应当看懂了吧!缘故原由是说Apache下文件高低文范例应当是httpd_sys_content_t,可是如今是admin_home_t,以是权限毛病,而且在开头处给出了修复命令。
可httpd_sys_content_t,admin_home_t都怎样看啊?很复杂,借助ls命令的-Z参数便可:
shell>ls-Z/root/test.htmlunconfined_u:object_r:admin_home_t:s0/root/test.htmlshell>ls-Z/var/www/html/test.htmlsystem_u:object_r:httpd_sys_content_t:s0/var/www/html/test.html
复制代码
申明:回到成绩的入手下手,拷贝之以是没呈现成绩,是由于cp主动修正高低文属性,而剪切之以是呈现成绩是由于mv保存原文件的高低文属性。
晓得了怎样办理SELinux成绩,今后在碰到相似的情形不要急着果断的封闭SELinux。
文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln
作者:
蒙在股里
时间:
2015-1-29 22:53
永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。
作者:
简单生活
时间:
2015-2-2 22:34
我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。
作者:
飘灵儿
时间:
2015-2-8 14:25
得到到草率的回答或者根本得不到任何Linux答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。
作者:
山那边是海
时间:
2015-2-24 17:40
眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。
作者:
再现理想
时间:
2015-3-7 12:43
你需要提供精确有效的信息。Linux这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。
作者:
兰色精灵
时间:
2015-3-15 05:31
放手去搞。尽量不要提问,运用搜索找答案,或者看wiki,从原理上理解操作系统的本质,而不是满足于使用几个技巧。尽量看英文资料。
作者:
灵魂腐蚀
时间:
2015-3-21 18:40
其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2