zoukankan      html  css  js  c++  java
  • restorecon 命令使用实例

    当你将自定义文件添加到已经由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 命令使用实例restorecon 命令使用实例

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

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

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

    restorecon 命令使用实例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 命令使用实例restorecon 命令使用实例

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

    可以将需要恢复安全上下文的文件或文件夹路径保存在文件里,使用-f选项指定文件,来恢复。在下面的/var/www/html/testdir目录和下面的指定的文件需要恢复默认安全上下文:
    restorecon 命令使用实例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 命令使用实例
    下面使用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 命令使用实例restorecon 命令使用实例

    6.排除某个目录

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

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

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

    总结

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

  • 相关阅读:
    CREATE AGGREGATE
    技术文档列表
    jQuery 判断表单中多个 input text 中至少有一个不为空
    Java实现 蓝桥杯 算法提高 奥运会开幕式
    Java实现 蓝桥杯 算法提高 最长滑雪道
    Java实现 蓝桥杯 算法提高 最长滑雪道
    Java实现 蓝桥杯 算法提高 最长滑雪道
    Java实现 蓝桥杯 算法提高 最大值路径
    Java实现 蓝桥杯 算法提高 最大值路径
    Java实现 蓝桥杯 算法提高 最大值路径
  • 原文地址:https://www.cnblogs.com/linuxprobe/p/14864421.html
Copyright © 2011-2022 走看看