使用selinux contexts

SELinux增强了Linux系统的安全,但是对于初学者来说很容易造成各种各样的错误,经常被搞的莫名其妙不知所措,最后只能祭出大招把SELinux一关了之。笔者也是初学者,也没有搞清楚其中的道理,只是了解点皮毛而已。本文只从chcon命令的使用结合几个例子简单回顾一下,更加深入的知识有待继续学习。

使用selinux contexts

SELinux增强了Linux系统的安全,但是对于初学者来说很容易造成各种各样的错误,经常被搞的莫名其妙不知所措,最后只能祭出大招把SELinux一关了之。笔者也是初学者,也没有搞清楚其中的道理,只是了解点皮毛而已。本文只从chcon命令的使用结合几个例子简单回顾一下,更加深入的知识有待继续学习。

chcon man page

NAME
chcon - change security context

SYNOPSIS
chcon [OPTION]... CONTEXT FILE...
chcon [OPTION]... --reference=RFILE FILE...

DESCRIPTION
Change the security context of each FILE to CONTEXT.

-c, --changes
like verbose but report only when a change is made

-h, --no-dereference
affect symbolic links instead of any referenced file (available
only on systems with lchown system call)

-f, --silent, --quiet
suppress most error messages

-l, --range
set range RANGE in the target security context

--reference=RFILE
use RFILE’s context instead of using a CONTEXT value

-R, --recursive
change files and directories recursively

-r, --role
set role ROLE in the target security context

-t, --type
set type TYPE in the target security context

-u, --user
set user USER in the target security context

-v, --verbose
output a diagnostic for every file processed

--help display this help and exit

--version
output version information and exit

REPORTING BUGS
Report bugs to <email@host.com>.

SEE ALSO
The full documentation for chcon is maintained as a Texinfo manual. If
the info and chcon programs are properly installed at your site, the
command

info chcon
should give you access to the complete manual.

SELinux 上下文 简介

在运行这SELinux的系统上,所有的进程和文件都以标记着一种安全相关的信息,这种信息就是SELinux Context(上下文)。可以使用下面的命令查看文件的上下文:

ls -Z file1
-rw-rw-r-- user1 group1 unconfined_u:object_r:user_home_t:s0 file1

在这个例子里面,SELinux提供了一个user (unconfined_u), 一个role (object_r), 一个type (user_home_t), 以及一个level (s0)。这个信息用来进行控制访问。SELinux实现了强制访问控制(MAC)的安全模式。在标准的Linux环境中开启了自由访问控制(Discretionary Access Control,DAC)后,这一机制就会在Linux内核中对所有操作的安全性进行检查。在DAC体系中,访问通过Linux用户ID和组ID进行控制,SELinux策略规则会在DAC规则之后进行检查。也就是说,如果DAC规则已经拒绝访问了,那么SELinux策略规则就不使用了。

有许多命令可以管理文件的SELnux上下文,例如chcon,semanage fcontext和restorecon。

chcon临时的改变

chcon命令可以临时的改变文件的上下文,也就是说如果文件系统relabel一下或者执行一下restorecon命令,上下文的改变就实效了。SELinux策略控制着用户能否修改一个文件的上下文。在适用chcon命令的时候用户要指定所有的或者部分的要改变的SELinux上下文。

改变一个文件或者文件夹的类型

下面这段只说明一下如何改变SELinux中的类型。这个我们假设file1是一个文件。当然,如果file1是一个文件夹的话也是适用的。

查看文件的上下文
~]# ls -Z file1
-rw-rw-r-- user1 group1 unconfined_u:object_r:user_home_t:s0 file1
改变文件的上下文
~]# chcon -t samba_share_t file1
~]# ls -Z file1
-rw-rw-r-- user1 group1 unconfined_u:object_r:samba_share_t:s0 file1
恢复文件的上下文
~]# restorecon -v file1
restorecon reset file1 context unconfined_u:object_r:samba_share_t:s0->system_u:object_r:user_home_t:s0

在使用RHEL6中默认的SELinux策略的时候,restore命令会读取/etc/selinux/targeted/contexts/files/文件夹中的文件,来查看文件应该拥有哪个SELinux上下文。

改变一个文件夹及其内容的类型

下面这个例子说明了如何把一个文件夹及其内容的类型改成Apache HTTP服务器使用的类型。当你想让Apache HTTP服务器使用一个不同的root文件夹的时候(默认的是/var/www/html/),这个配置就有派上用场了。

新建文件夹/web,并在其中新建三个文件file{1,2,3}:
~]# mkdir /web
~]# cd /web
~]# touch file{1,2,3}
/web/文件夹和里面的文件都具有default_t类型的标签:
~]# ls -dZ /web
drwxr-xr-x root root unconfined_u:object_r:default_t:s0 /web
~]# ls -lZ /web
-rw-r--r-- root root unconfined_u:object_r:default_t:s0 file1
-rw-r--r-- root root unconfined_u:object_r:default_t:s0 file2
-rw-r--r-- root root unconfined_u:object_r:default_t:s0 file3
使用chcon命令把/web/文件夹及其内容的类型改成httpd_sys_content_t:
~]# chcon -R -t httpd_sys_content_t /web/
使用restorecon命令来恢复默认的上下文:
~]# restorecon -R -v /web/
restorecon reset /web context unconfined_u:object_r:httpd_sys_content_t:s0->system_u:object_r:default_t:s0
restorecon reset /web/file2 context unconfined_u:object_r:httpd_sys_content_t:s0->system_u:object_r:default_t:s0
restorecon reset /web/file3 context unconfined_u:object_r:httpd_sys_content_t:s0->system_u:object_r:default_t:s0
restorecon reset /web/file1 context unconfined_u:object_r:httpd_sys_content_t:s0->system_u:object_r:default_t:s0

参考其他的文件来创建上下文

使用参数--reference来指定其他的文件
chcon -R --reference=RFILE FILE

参考文献

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Working_with_SELinux-SELinux_Contexts_Labeling_Files.html
http://wiki.centos.org/HowTos/SELinux
http://www.searchsv.com.cn/showcontent_44629.htm

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容