阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

restorecon 命令使用实例

32次阅读
没有评论

共计 3494 个字符,预计需要花费 9 分钟才能阅读完成。

导读 当你将自定义文件添加到已经由 SELinux 策略管理的目录中时,如果自定义文件没有适当的 SELinux 上下文,那么将不会得到预期的结果。restorerecon 命令的意思是恢复 SELinux 上下文。restorecon 命令将文件和目录的 SELinux 安全上下文重置为默认值。这只会重置 SELinux 上下文的类型属性。
1. 恢复文件的 SELinux 上下文

在以下示例中,index.html 文件在 SELinux 上下文中具有“user_home_t”上下文类型。这个上下文类型,apache 服务将无法访问。

[root@localhost ~]# ll -Z /var/www/html/index.html 
-rw-rw-r--. root root unconfined_u:object_r:user_home_t:s0  13 Jan  7 11:14  /var/www/html/index.html

注意:上面的 ls 命令中的 -Z 选项将显示特定文件的 SELinux 上下文。当我们使用 restorecon 命令时,我们实际上不需要知道文件的原始安全上下文。restorecon 会自动修正。

以下示例将把 index.html 的安全性上下文恢复为适当的值。如下所示,它已将 SELinux 上下文的类型重置为“httpd_sys_content_t”,现在 apache 将能够为该文件提供服务,而不会出现任何错误。

[root@localhost ~]# restorecon /var/www/html/index.html 
[root@localhost ~]# ll -Z /var/www/html/index.html 
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 13 Jan  7 11:14 /var/www/html/index.html
2. 更改安全上下文时输出信息

默认情况下,执行 restorecon 命令时,它不会提示是否更改了文件的安全上下文。

[root@localhost ~]# restorecon -v /var/www/html/index.html 
Relabeled /var/www/html/index.html from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0

restorecon 命令使用实例

3. 使用通配符处理多个对象

下面实例将修改目录下面所有文件的安全上下文。

[root@localhost ~]# restorecon -v /var/www/html/*

restorecon 命令使用实例

4. 递归处理文件和目录

还可以使用 -R 选项递归重置文件的安全上下文。

[root@localhost ~]# restorecon -Rv /var/www/html/
Relabeled /var/www/html/sales from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /var/www/html/sales/graph.html from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0

restorecon 命令使用实例

5. 根据输入文件还原上下文

可以将需要恢复安全上下文的文件或文件夹路径保存在文件里,使用 -f 选项指定文件,来恢复。在下面的 /var/www/html/testdir 目录和下面的指定的文件需要恢复默认安全上下文:
restorecon 命令使用实例
首先创建一个文件 input.txt,在里面填入需要恢复默认安全上下文的目录或者文件的完整路径。

[root@localhost ~]# vim input.txt 
[root@localhost ~]# cat input.txt 
/var/www/html/testdir
/var/www/html/testdir/file1.txt
/var/www/html/testdir/file3.txt
/var/www/html/testdir/file5.txt
/var/www/html/testdir/file7.txt
/var/www/html/testdir/file9.txt

restorecon 命令使用实例
下面使用 restorecon 来恢复:

[root@localhost ~]# restorecon -Rvf input.txt 
Relabeled /var/www/html/testdir from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /var/www/html/testdir/file1.txt from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /var/www/html/testdir/file2.txt from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /var/www/html/testdir/file3.txt from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /var/www/html/testdir/file4.txt from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /var/www/html/testdir/file5.txt from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /var/www/html/testdir/file6.txt from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /var/www/html/testdir/file7.txt from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /var/www/html/testdir/file8.txt from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /var/www/html/testdir/file9.txt from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /var/www/html/testdir/file10.txt from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0

restorecon 命令使用实例

6. 排除某个目录

还可以使用 -e 选项排除不需要恢复安全上下文的目录。
在以下示例中,我们正在处理 /var/www/html 目录下的所有文件,但不包括 /var/www/html/sales 子目录中的文件。

[root@localhost html]# restorecon -e /var/www/html/sales -Rv /var/www/html

restorecon 命令使用实例
还可以提供多个 -e 选项来排除多个文件或文件夹。

总结

restorecon 命令将文件和目录的 SELinux 安全上下文重置为默认值。这只会重置 SELinux 上下文的类型属性。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计3494字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中